İçeriğe Geç

Paket Dosyası İndir

GET /api/v1/documents/{id}/files/{fileId}/download

Paket Dosyası İndir

Zip paketi olarak yayımlanmış bir mevzuatın (documentFormat = 5, Archive) tek bir dosyasını paketten çıkarıp indirir. Paketin tamamı için Doküman İndir uç noktasını kullanın; o uç zip dosyasını olduğu gibi döner.

Dosya kimliği nereden gelir

fileId, GET /library/{id} yanıtındaki files[].id değeridir. Kimlik dosyanın paket içindeki yoluna bağlıdır: paket yeniden işlendiğinde (örneğin kaynakta güncellendiğinde) dosya aynı yolla pakette kaldıkça kimliği değişmez. Paketten çıkan ya da yolu değişen dosyanın kimliği geçersizleşir ve 404 döner; kimliği uzun süre saklamak yerine indirmeden önce detayı yeniden okuyun.

Uç nokta dosyayı yalnız kimliğiyle bulur ve kimlik bu belgenin dosya listesinde olmalıdır: başka bir paketin dosya kimliği bu belgede 404'tür. Paket içindeki yol hiçbir zaman istekten okunmaz.

Yanıt başlıkları

  • Content-Disposition: attachment; filename="…"; filename*=UTF-8''… — dosya her zaman ek olarak iner, tarayıcıda açılmaz. Türkçe karakterli adlar filename* (RFC 5987) ile taşınır; filename ASCII yedeğidir.
  • X-Content-Type-Options: nosniff.
  • Content-Type dosyanın türüdür ve önce dosyanın baytlarından okunur: PDF yalnız dosyanın baytları PDF ise application/pdf olur (adı .pdf olan ama PDF olmayan dosya application/octet-stream döner); Word (.doc, .docx, .rtf), Excel (.xls, .xlsx) ve zip dosyaları imzalarından tanınır. Baytları bir tür kanıtlamayan dosya adının uzantısıyla türünü alır: Word, Excel (.xlsm dâhil), .csv, .txt, .zip ile PNG, JPEG, GIF ve TIFF görüntüleri.
  • HTML, SVG, XML (XSD ve XSL dâhil) ile JavaScript dosyaları, baytları ne olursa olsun, her zaman application/octet-stream olarak verilir. Bu bir güvenlik kuralıdır: pakete konmuş böyle bir dosya kendi türüyle verilseydi tarayıcıda çalışabilirdi. Listede olmayan her uzantı da application/octet-stream'dir.
  • Cache-Control: private, max-age=86400 — PDF dosyalar müşteriye özel filigranlıdır; paylaşımlı bir önbellek bu yanıtı saklamamalıdır.

Filigran

Baytları PDF olan dosyalar, Doküman İndir'deki gibi müşteriye özel filigranla işaretlenir ve X-Regvion-Document-Fingerprint başlığı filigran kimliğini taşır. Kimlik belge başınadır: aynı paketin bütün PDF dosyaları aynı kimliği taşır. Diğer türler filigransız, paketteki hâliyle bayt bayt verilir. Her indirme — filigransız olanlar dâhil — indirme kaydına yazılır.

İzin ve kota

Api.Documents.Download iznini gerektirir ve paketin tamamını indirmekle aynı oran sınırı ve aylık kota kovasından düşer (/account/usage byEndpoint kırılımında Api.Documents.Download satırı).

404 ne zaman döner

  • Belge yok, işlenmesi tamamlanmamış ya da paket değil (isPackage = false).
  • fileId bu belgenin dosyalarından biri değil: başka bir paketin dosyası ya da paketten çıkmış bir dosyanın kimliği.
  • Dosya paketten tek başına çıkarılamıyor: şifreli (status = encrypted) ya da olağandışı sıkıştırma oranıyla güvenlik sınırını aşan (status = skippedRatio) dosyalar. Bu durumda mesaj paketin tamamını indirmenizi söyler.
  • Dosya saklanan pakette bulunamadı ya da açılmış boyutu 100 MB'ı aşıyor.

Parametreler

İsimKonumTipZorunluAçıklama
id Path uuid Evet Paket belgesinin ID'si.
fileId Path uuid Evet Dosyanın ID'si — /library/{id} yanıtındaki files[].id. Dosya aynı yolla pakette kaldıkça değişmez; paketten çıkan dosyanın kimliği 404 döner.

Yanıtlar

200 — Dosya akışı. Her zaman Content-Disposition: attachment (Türkçe ad filename*=UTF-8''… ile) ve X-Content-Type-Options: nosniff. Content-Type dosyanın türüdür; HTML, SVG, XML ve JavaScript dosyaları her zaman application/octet-stream. PDF dosyalarda X-Regvion-Document-Fingerprint başlığı filigran kimliğini taşır.

404 — Belge yok, tamamlanmamış ya da paket değil; dosya bu belgeye ait değil ya da artık pakette yok; şifreli veya güvenlik sınırını aşan dosya (paketin tamamını indirin); dosya saklanan pakette bulunamadı.