پرش به مستندات
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 ذخیره می‌کند و فایلی را برمی‌گرداند که یک ارسال شناسه‌اش را به شکل {'fileId': upload['id']} پیوست می‌کند. content_type را بدهید، وگرنه بایت‌ها به شکل application/octet-stream ذخیره می‌شوند. هرگز دوباره تلاش نمی‌شود، چون تلاش دوم یک نسخهٔ دوم ذخیره می‌کرد.

فقط فایل بارگذاری‌شده‌ای که چیزی به آن وابسته نیست حذف‌شدنی است، و deletable و usage روی هر فایل این را از پیش می‌گویند. delete هر فایل دیگری را با یک 409 file_in_use رد می‌کند. delete_many تا 100 شناسه می‌گیرد، هر چه بتواند حذف می‌کند، و بقیه را در kept، هر کدام با دلیلش، و در missing گزارش می‌دهد.

upload یک bytes، bytearray یا memoryview می‌گیرد. دست‌کم 600 ثانیه منتظر پاسخ می‌ماند، هر قدر هم timeout کلاینت کوتاه باشد، مگر اینکه timeout= را به فراخوانی بدهید، و یک filename خالی پیش از فرستادن هر چیزی ValueError را raise می‌کند.

مرجع