İçeriğe Geç

Doküman İndir

GET /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, .pdf
  • DocumentFormat.Html → text/html; charset=…, .html — charset, dosyanın kendi bildirimini (BOM, <meta charset>, http-equiv=Content-Type pragması 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-defined gibi) başlıkta charset bulunmaz
  • DocumentFormat.Image → image/png, .png
  • DocumentFormat.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ı İndir
  • DocumentFormat.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 rawContentPath boş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.Download tier izni). /account/usage byEndpoint kırılımında ayrı satır olarak görünür.

Parametreler

İsimKonumTipZorunluAçıklama
id Path uuid Evet Doküman ID'si.

Yanıtlar

200 — Dosya akışı (Content-Type formata göre değişir; HTML için `charset` dosyanın kendi bildirimini yineler). Yanıt başlığında `X-Regvion-Document-Fingerprint` ile filigran kimliği döner.

404 — Doküman veya dosya bulunamadı.