Kalo te dokumentacioni
Ruby

Skedarët

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

Çdo metodë

files.rb
page = client.files.list(kind: "pdf", sort: "largest")file = page.items.first links = client.files.list_all_links(file[:id])p links.map { |link| [link[:url], link[:downloads]] } stats = client.files.statsputs stats.dig(:totals, :files), stats.dig(:uploaded, :bytes) File.binwrite(file[:filename], client.files.download(file[:id]))

Çdo skedar që mban kutia postare, bashkëngjitjet e dërguara dhe të marra dhe skedarët e ngarkuar në të: faqja Skedarët e aplikacionit. download kthen bajtet si një String binar, të cilin File.binwrite e ruan të pandryshuar. Lidhjet janë lidhjet e shkarkimit me të cilat doli një skedar, me sa herë u mor secila, dhe stats është skeda Analitika.

list, list_all dhe iterate marrin q:, kind: dhe sort:, si dhe direction: (inbound, outbound ose uploaded), address:, skedarët e një adrese të krahasuar pa dallim shkronjash të mëdha a të vogla, dhe since: e until:, një Time, një DateTime ose një String ISO 8601. since: e përfshin çastin e vet dhe until: ndalet para tij. Një Date e Ruby-t dërgohet si datë e zhveshur, të cilën kjo listë e lexon si mesnatë UTC.

q: kërkon te emri i skedarit dhe te lloji i tij. kind: është image, pdf, audio, video ose text, dhe sort: është newest, parazgjedhja, oldest, largest ose name. OpenEmail::FILE_KINDS, OpenEmail::FILE_SORTS dhe OpenEmail::FILE_DIRECTIONS emërtojnë zgjedhjet. list kthen një OpenEmail::Page, dhe list_all i kthen të gjithë skedarët në një Array të vetëm. iterate ia jep çdo skedar një blloku dhe e merr faqen e radhës vetëm kur cikli ka nevojë për të. Pa bllok kthen një Enumerator.

Leximi kërkon files:read, ndërsa ngarkimi, fshirja dhe publikimi ose revokimi i lidhjeve kërkojnë files:write, që përfshin files:read. Një çelësi të krijuar para se skedarët të kishin fushat e tyre iu dhanë fushat përkatëse. Një çelës pa fushën refuzohet me një 403 insufficient_scope, dhe scope_missing? te gabimi është true. Një çelës i kufizuar në adresa ose domene të caktuara sheh vetëm skedarët që mbërritën te to, ndaj nuk sheh skedarët e ngarkuar për gjithë hapësirën e punës.

download e mban gjithë skedarin në memorie, ndaj merrini skedarët shumë të mëdhenj një nga një.

Ngarkimi dhe fshirja

upload.rb
upload = client.files.upload(File.binread("report.pdf"), filename: "report.pdf", content_type: "application/pdf")client.files.delete(upload[:id]) if upload[:deletable] invoice = client.files.upload(Pathname("invoice.pdf"))puts invoice[:filename], invoice[:mimeType] result = client.files.delete_many(["file_0c4e7a91d2b84f63a5e19b7d", "file_6bb640f5b99e47deb758f1f5"])result[:kept].each { |kept| puts "#{kept[:filename]} #{kept[:reason]}" }

upload ruan bajtet ashtu siç janë, deri në 100 MB, me emrin te filename:, dhe kthen skedarin. Një dërgim e bashkëngjit si {fileId: upload[:id]} te attachments i emails.send. Jepni content_type:, ose bajte që mbartin llojin e tyre, dhe çdo gjë tjetër ruhet si application/octet-stream. Nuk riprovohet kurrë, sepse një përpjekje e dytë do të ruante një kopje të dytë.

Bajtet janë një String binar, një IO ose një Pathname. Një Pathname ose një File nuk ka nevojë për asnjërën fjalë kyçe: emri është ai i vetë skedarit, dhe lloji vjen nga prapashtesa e tij kur gem-i e njeh, si .pdf ose .png. Një ngarkim i Rails sjell original_filename dhe content_type të vetat. Bajtet e thjeshta nuk mbartin emër, ndaj një String ose një StringIO pa filename: ngre ArgumentError para se të dërgohet ndonjë gjë.

Një ngarkim mund të zgjasë 600 sekonda, ose sa timeout i klientit kur ky është më i gjatë, dhe timeout: cakton një kufi tjetër për një thirrje. Një klient i ndërtuar me timeout: 0 pret sa të zgjasë ngarkimi.

Mund të fshihet vetëm një skedar i ngarkuar nga i cili nuk varet asgjë, dhe deletable e usage te çdo skedar e tregojnë këtë paraprakisht. delete refuzon çdo skedar tjetër me një 409 file_in_use, të ngritur si OpenEmail::ConflictError. delete_many merr deri në 100 id, fshin çfarë mundet dhe raporton pjesën tjetër te kept, secilin me arsyen e tij, dhe te missing. Asnjëra nuk riprovohet. Një 404 te një delete i dytë pas një përgjigjeje të humbur do të thotë se i pari funksionoi, dhe një delete_many i dytë i raporton ata skedarë te missing.