Files
`files.list`, `list_all`, `iterate`, `get`, `download`, `list_links`, `list_all_links`, `iterate_links`, `create_link`, `revoke_link`, `stats`, `upload`, `delete` और `delete_many`।
हर मेथड
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 शामिल है। फ़ाइलों के अपने स्कोप आने से पहले बनी कुंजी को मेल खाते स्कोप दे दिए गए। कुछ ख़ास पतों या डोमेन तक सीमित कुंजी सिर्फ़ उन्हीं की फ़ाइलें देखती है।
सार्वजनिक लिंक
from openemail import openemail uploads = openemail.files.list_all(direction='uploaded', since='2026-09-01') file = uploads[0] link = openemail.files.create_link(file['id'], domain='acme.com')print(link['url']) openemail.files.revoke_link(file['id'], link['id'])create_link किसी फ़ाइल को ऐसे सार्वजनिक डाउनलोड लिंक पर प्रकाशित करता है जो बिना साइन-इन के खुलता है, और वह लिंक लौटाता है। लिंक domain के फ़ाइल होस्ट पर रहता है अगर उस डोमेन का कोई हो, जैसे files.acme.com, नहीं तो उस पते के फ़ाइल होस्ट पर जिसकी फ़ाइल है, नहीं तो API पते पर। किसी संदेश के साथ आई या गई फ़ाइल पहले सार्वजनिक स्टोरेज में कॉपी की जाती है, और प्रोग्राम या स्क्रिप्ट को 422 file_unshareable के साथ मना कर दिया जाता है।
हर create_link नया लिंक बनाता है, इसलिए खोए हुए जवाब के बाद इसे कभी दोबारा नहीं आज़माया जाता: पहले list_links से लिंक ढूँढ़ें। revoke_link किसी लिंक को हमेशा के लिए बंद करता है, उन मेल में भी जो पहले ही भेजी जा चुकी हैं, और revokedAt सेट करके वह लिंक लौटाता है। किसी लिंक को दो बार रद्द करना सुरक्षित है, और अज्ञात लिंक 404 है।
अपलोड और हटाना
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 कोई send {'fileId': upload['id']} के रूप में जोड़ता है। content_type दें, वरना बाइट application/octet-stream के रूप में रखे जाते हैं। इसे कभी दोबारा नहीं आज़माया जाता, क्योंकि दूसरी कोशिश एक दूसरी कॉपी रख देती।
सिर्फ़ वही अपलोड की गई फ़ाइल हटाई जा सकती है जिस पर कुछ निर्भर न हो, और हर फ़ाइल पर deletable और usage यह पहले से बताते हैं। delete किसी भी दूसरी फ़ाइल को 409 file_in_use के साथ मना करता है। delete_many 100 तक id लेता है, जो हटा सकता है हटाता है, और बाकी को kept में, हर एक को उसके कारण के साथ, और missing में बताता है।
upload bytes, bytearray या memoryview लेता है। यह जवाब के लिए कम से कम 600 सेकंड इंतज़ार करता है, क्लाइंट का timeout कितना भी छोटा हो, जब तक आप कॉल को timeout= पास न करें, और ख़ाली filename कुछ भी भेजे जाने से पहले ValueError raise करता है।
संदर्भ
files.list()पूरा रेफ़रेंसfiles.list_all()पूरा रेफ़रेंसfiles.iterate()पूरा रेफ़रेंसfiles.get()पूरा रेफ़रेंसfiles.download()पूरा रेफ़रेंसfiles.list_links()पूरा रेफ़रेंसfiles.list_all_links()पूरा रेफ़रेंसfiles.iterate_links()पूरा रेफ़रेंसfiles.create_link()पूरा रेफ़रेंसfiles.revoke_link()पूरा रेफ़रेंसfiles.stats()पूरा रेफ़रेंसfiles.upload()पूरा रेफ़रेंसfiles.delete()पूरा रेफ़रेंसfiles.delete_many()पूरा रेफ़रेंस