문서로 건너뛰기
Python

파일

`files.list`, `list_all`, `iterate`, `get`, `download`, `list_links`, `list_all_links`, `iterate_links`, `create_link`, `revoke_link`, `stats`, `upload`, `delete`, `delete_many`.

모든 메서드

files.py
from pathlib import Path from openemail import openemail page = openemail.files.list(kind='pdf', sort='largest')file = page['items'][0] Path(file['filename']).write_bytes(openemail.files.download(file['id'])) links = openemail.files.list_all_links(file['id'])print([(link['url'], link['downloads']) for link in links]) stats = openemail.files.stats()print(stats['totals']['files'], stats['uploaded']['bytes'])

메일함이 보관하는 모든 파일로, 보내고 받은 첨부 파일과 업로드한 파일을 포함하며, 앱의 파일 페이지에 해당합니다. download는 파일 전체를 bytes로 돌려주고, 링크는 파일이 나간 다운로드 링크와 각 링크를 받아 간 횟수이며, stats는 분석 탭입니다.

list, list_all, iterate는 q, kind, sort와 함께 direction(inbound, outbound, uploaded), address(대소문자를 구분하지 않고 비교하는 한 주소의 파일), since와 until(datetime 또는 ISO 8601 문자열)을 받습니다. since는 그 시점을 포함하고 until은 그 직전에서 멈춥니다.

읽으려면 files:read, 업로드, 삭제, 링크 게시와 취소에는 files:write가 필요하며, 이 범위는 files:read를 포함합니다. 파일에 자체 범위가 생기기 전에 만든 키에는 그에 맞는 범위가 부여되었습니다. 특정 주소나 도메인으로 제한된 키는 그곳의 파일만 봅니다.

업로드와 삭제

upload.py
from pathlib import Path from openemail import openemail upload = openemail.files.upload(    Path('price-list.pdf').read_bytes(),    filename='price-list.pdf',    content_type='application/pdf',) if upload['deletable']:    openemail.files.delete(upload['id']) result = openemail.files.delete_many([    'file_0c4e7a91d2b84f63a5e19b7d',    'file_6bb640f5b99e47deb758f1f5',])for kept in result['kept']:    print(kept['filename'], kept['reason'])

upload는 바이트를 그대로, 100 MB까지, filename 이름으로 저장하고 파일을 돌려주며, 발송은 그 id를 {'fileId': upload['id']}로 첨부합니다. content_type을 넘기세요. 넘기지 않으면 바이트는 application/octet-stream으로 저장됩니다. 두 번째 시도는 두 번째 사본을 저장하게 되므로 절대 재시도하지 않습니다.

아무것도 의존하지 않는 업로드된 파일만 삭제할 수 있으며, 파일마다 deletable과 usage가 이를 미리 알려 줍니다. delete는 다른 파일을 409 file_in_use로 거부합니다. delete_many는 id를 최대 100개 받아 삭제할 수 있는 것을 삭제하고, 나머지는 kept에 각각의 이유와 함께, 그리고 missing에 알려 줍니다.

upload는 bytes, bytearray, memoryview를 받습니다. 호출에 timeout=을 넘기지 않는 한, 클라이언트의 timeout이 아무리 짧아도 응답을 최소 600초 기다리며, 빈 filename은 아무것도 보내기 전에 ValueError를 발생시킵니다.

레퍼런스