ドキュメント本文へスキップ
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(大文字小文字を区別せずに比較する 1 つのアドレスのファイル)、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 として保存される。2 回目の試行は 2 つ目のコピーを保存してしまうので、再試行は一切しない。

削除できるのは何も依存していないアップロード済みファイルだけで、各ファイルの deletable と usage がそれを事前に示す。delete はそれ以外のファイルを 409 file_in_use で拒否する。delete_many は最大 100 件の id を受け取り、削除できるものを削除し、残りを kept(それぞれ理由付き)と missing で報告する。

upload は bytes、bytearray、memoryview を受け取る。呼び出しに timeout= を渡さない限り、クライアントの timeout がどれだけ短くても応答を少なくとも 600 秒待つ。また空の filename は、何かが送られる前に ValueError を送出する。

リファレンス