Doküman İndir
/api/v1/documents/{id}/download
Doküman İndir
Dokümanın orijinal dosyasını müşteriye özel filigranla işaretleyip akış olarak döner. Filigran her istekte yeniden hesaplanır; dosya adı {güvenli başlık}.{uzantı} formatında Content-Disposition: attachment başlığı ile birlikte gelir.
Filigran ve fingerprint
Aynı doküman ID'si, müşteri başına farklı bir kopya olarak servis edilir. PDF'lerde içeriğe gömülü, HTML'lerde metaya yerleşik bir HMAC stamp'i bulunur. Yanıt başlığında bu stamp'in kimliği ekoyla döner:
X-Regvion-Document-Fingerprint: <opaque-hmac>
Müşteri destek talebinde "hangi kopyayı aldım?" sorusunu yanıtlamak için bu fingerprint'i quote edebilir. Fingerprint dosyaya zaten gömüldüğü için bu header ek bir şey sızdırmaz.
Resim (DocumentFormat.Image, PNG), Word (DocumentFormat.Word), zip paketi (DocumentFormat.Archive) ve tablo (DocumentFormat.Spreadsheet) biçimindeki belgelere filigran gömülmez — dosya değiştirilmeden servis edilir. İndirme kaydı yine tutulur ve X-Regvion-Document-Fingerprint başlığı yine döner; bu başlığın varlığı dosyanın filigranlandığı anlamına gelmez.
Önbellekleme — private
Yanıt Cache-Control: private, max-age=86400 döner. Filigran müşteriye özel olduğu için paylaşımlı CDN/proxy bu içeriği önbelleklememelidir. Tarayıcı kendi önbelleğinde 24 saat saklayabilir; müşteri A'nın aldığı bytes hiçbir zaman müşteri B'ye servis edilmemelidir.
Eğer kendi proxy/cache katmanınız varsa, Cache-Control: private header'ına saygı gösterdiğinden emin olun ya da bu uç noktayı tamamen bypass edin.
Dosya tipleri
DocumentFormat.Pdf→application/pdf,.pdfDocumentFormat.Html→text/html; charset=…,.html—charset, dosyanın kendi bildirimini (BOM,<meta charset>,http-equiv=Content-Typepragması ya da XML bildirimi) yineler; dosya hiçbir şey bildirmiyorsa ya da bildirdiği etiket tarayıcının başlıktan farklı yorumlayacağı bir etiketse (unicode,utf-16,x-user-definedgibi) başlıktacharsetbulunmazDocumentFormat.Image→image/png,.pngDocumentFormat.Word→ dosyanın kendisine göre.doc(application/msword),.docx(application/vnd.openxmlformats-officedocument.wordprocessingml.document) ya da.rtf(application/rtf)DocumentFormat.Archive→application/zip,.zip— paketin tamamı; içindeki tek bir dosya için Paket Dosyası İndirDocumentFormat.Spreadsheet→ dosyanın kendisine göre.xls(application/vnd.ms-excel) ya da.xlsx(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)- Diğer →
application/octet-stream,.bin
Uzantı ve Content-Type dosyanın baytlarından doğrulanır: documentFormat alanı henüz 1 = Pdf gösteren eski bir kayıtta dosya aslında Word belgesi ya da zip paketiyse indirme yine doğru uzantı ve türle gelir.
HTML karakter kodlaması
HTML belgeler, indirilen dosya tek başına (tarayıcıda çift tıklayarak) açıldığında da doğru okunsun diye kendi kodlamasını bildiren biçimde servis edilir: kodlama bildirmeyen ve geçerli UTF-8 olan dosyalara <meta charset="utf-8" /> eklenir; bayt içeriği UTF-8 olduğu halde eski bir kod sayfası (ör. Windows-1254) bildiren dosyalarda bildirim utf-8 olarak düzeltilir. Bunun dışında dosya bayt bayt orijinaliyle aynıdır (filigran işaretleri hariç). Content-Type başlığında charset bulunduğunda her zaman dosyanın bildirimiyle aynıdır; başlık hiçbir zaman dosyayla çelişmez.
İndirme yapısı
API container'ı stateless tutmak için filigranlı dosyalar diskte saklanmaz — her istekte yeniden üretilir. PDF için tipik ek yük 100-500 ms, HTML için < 10 ms'dir. Bu uç nokta yüksek hacimli paralel indirmeler için tasarlanmamıştır; toplu indirme senaryolarında talep arasında 100-200 ms bekleme yeterlidir.
Yaygın hatalar
- Doküman tamamlanmış olsa bile
rawContentPathboşsa (scraping aşamasında dosya kaybolduysa) 404 döner. Kriz sonrası telafi için[email protected]adresine başvurun. - Bu çağrı oran sınırı için ayrı bir kategori altında sayılır (
Api.Documents.Downloadtier izni)./account/usagebyEndpointkırılımında ayrı satır olarak görünür.
Parametreler
| İsim | Konum | Tip | Zorunlu | Açıklama |
|---|---|---|---|---|
id |
Path | uuid |
Evet | Doküman ID'si. |