Play Games Services Publishing API ile görüntü yükleme

Play Games Services Publishing API, bir oyun kaynağı için görüntü yüklemenize olanak tanır.

Yükleme seçenekleri

Play Games Services Publishing API belirli türde ikili veri veya medya yüklemenize olanak tanır. Yükleyebileceğiniz verilerin kendine özgü özellikleri, medya yüklemelerini destekleyen herhangi bir yöntem için referans sayfasında belirtilmiştir:

  • Maksimum yükleme dosyası boyutu: Bu yöntemle depolayabileceğiniz maksimum veri miktarıdır.

  • Kabul edilen medya MIME türleri: Bu yöntemi kullanarak depolayabileceğiniz ikili veri türleridir.

Aşağıdaki yöntemlerden birini kullanarak yükleme isteğinde bulunabilirsiniz. UploadType istek parametresiyle, kullandığınız yöntemi belirtin.

  • Basit yükleme: uploadType=media. 5 MB veya daha küçük gibi daha küçük dosyaların hızlıca aktarılması için.

  • Çok parçalı yükleme: uploadType=multipart. Daha küçük dosyaların ve meta verilerin hızlı aktarımı için dosyayı tanımlayan meta verilerle birlikte tek bir istekte aktarılır.

  • Devam ettirilebilir yükleme: uploadType=resumable. Güvenilir aktarım için özellikle büyük dosyalarda önemlidir. Bu yöntemle, isteğe bağlı olarak meta veriler içerebilen bir oturum başlatma isteği kullanırsınız. Bu, yükleme başına bir ek HTTP isteği karşılığında daha küçük dosyalar için de çalıştığından çoğu uygulama için iyi bir stratejidir.

Medya yüklediğinizde özel bir URI kullanırsınız. Aslında, medya yüklemelerini destekleyen yöntemlerin iki URI uç noktası vardır:

  • Medya için /upload URI'sı. Yükleme uç noktasının biçimi, "/upload" önekine sahip standart kaynak URI'sidir. Medya verilerinin kendisini aktarırken bu URI'yi kullanın.

    Örnek: POST /upload/games/v1configuration/images/resourceId/imageType/imageType

  • Meta verilerin standart kaynak URI'sı. Kaynakta herhangi bir veri alanı varsa bu alanlar yüklenen dosyayı açıklayan meta verileri depolamak için kullanılır. Bu URI'yi meta veri değerlerini oluştururken veya güncellerken kullanabilirsiniz.

    Örnek: POST /games/v1configuration/images/resourceId/imageType/imageType

Basit yükleme

Dosya yüklemenin en basit yöntemi, basit bir yükleme isteğinde bulunmaktır. Aşağıdakilerden biri geçerli olduğunda bu seçenek iyi bir seçenektir:

  • Dosya, bağlantı başarısız olursa tamamen tekrar yüklenebilecek kadar küçüktür.

  • Gönderilecek meta veri yok. Bu kaynak için ayrı bir istekte meta veri göndermeyi planlıyorsanız veya hiçbir meta veri desteklenmiyor ya da mevcut değilse bu durum geçerli olabilir. Basit yüklemeyi kullanmak için yöntemin /upload URI'sına bir POST veya PUT isteği gönderin ve installType=media sorgu parametresini ekleyin. Örneğin:

POST https://www.googleapis.com/upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=media

Basit bir yükleme isteği yaparken kullanılacak HTTP üstbilgileri şunlardır:

  • Content-Type. Bu yöntemin kabul edilen yükleme medyası veri türlerinden birine ( Publishing API referansında belirtilmiştir) izin ver.

  • Content-Length. Yüklemekte olduğunuz bayt sayısına ayarlayın. Parçalı aktarım kodlaması kullanıyorsanız gerekli değildir.

Örnek: Basit yükleme

Aşağıdaki örnekte, Play Games Services Publishing API için basit bir yükleme isteğinin kullanımı gösterilmektedir.

POST /upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=media HTTP/1.1
Host: www.googleapis.com
Content-Type: image/png
Content-Length: number_of_bytes_in_file
Authorization: Bearer your_auth_token

PNG data

İstek başarılı olursa sunucu tüm meta verilerle birlikte HTTP 200 OK durum kodunu döndürür. Örneğin:

HTTP/1.1 200
Content-Type: application/json

{
  "kind": "gamesConfiguration#imageConfiguration",
  "url": string,
  "resourceId": string,
  "imageType": string
}

Çok parçalı yükleme

Yüklenecek verilerle birlikte göndermek istediğiniz meta verileriniz varsa tek bir multipart/related isteğinde bulunabilirsiniz. Gönderdiğiniz veriler, bağlantı kesilirse tamamen tekrar yüklenecek kadar küçükse bu iyi bir seçenektir.

Çok parçalı yükleme kullanmak için yöntemin /upload URI'sına POST veya PUTisteğinde bulunun ve uploadType=multipart sorgu parametresini ekleyin. Örneğin:

POST https://www.googleapis.com/upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=multipart

Çok parçalı bir yükleme isteği oluştururken kullanılacak üst düzey HTTP üstbilgileri şunlardır:

-Content-Type. Çok parçalı/ilgili olarak ayarlayın ve isteğin bölümlerini tanımlamak için kullandığınız sınır dizesini dahil edin.

-Content-Length. İstek gövdesindeki toplam bayt sayısına ayarlayın. İsteğin medya bölümü, bu yöntem için belirtilen maksimum dosya boyutundan küçük olmalıdır.

İsteğin gövdesi, çok parçalı/ilgili içerik türü RFC2387 olarak biçimlendirilir ve tam olarak iki bölümden oluşur. Parçalar bir sınır dizesiyle tanımlanır ve son sınır dizesinin ardından iki kısa çizgi gelir.

Çok parçalı isteğin her bölümü için ek bir İçerik Türü başlığı gerekir:

  • Meta veri parçası: Öncelikle gelmelidir ve Content-Type, kabul edilen meta veri biçimlerinden biriyle eşleşmelidir.

  • Medya bölümü: İkinci seçenek olmalıdır ve Content-Type, yöntemin kabul edilen medya MIME türlerinden biriyle eşleşmelidir.

Her yöntemin kabul edilen medya MIME türleri ve yüklenen dosyalara ilişkin boyut sınırları listesi için yayınlama API referansı konusuna bakın.

Örnek: Çok parçalı yükleme

Aşağıdaki örnekte Play Games Services Publishing API için çok parçalı bir yükleme isteği gösterilmektedir.

POST /upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=multipart HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer your_auth_token
Content-Type: multipart/related; boundary=foo_bar_baz
Content-Length: number_of_bytes_in_entire_request_body

--foo_bar_baz
Content-Type: application/json; charset=UTF-8

{
  "kind": "gamesConfiguration#imageConfiguration",
  "url": string,
  "resourceId": string,
  "imageType": string
}

--foo_bar_baz
Content-Type: image/png

PNG data
--foo_bar_baz--

İstek başarılı olursa sunucu tüm meta verilerle birlikte HTTP 200 OK durum kodunu döndürür:

HTTP/1.1 200
Content-Type: application/json

{
  "kind": "gamesConfiguration#imageConfiguration",
  "url": string,
  "resourceId": string,
  "imageType": string
}

Devam ettirilebilir yükleme

Veri dosyalarını daha güvenilir şekilde yüklemek için devam ettirilebilir yükleme protokolünü kullanabilirsiniz. Bu protokol, bir iletişim hatası veri akışını kesintiye uğrattıktan sonra yükleme işlemini devam ettirmenize olanak tanır. Bu, özellikle büyük dosyaları aktarıyorsanız ve ağ kesintisi veya başka bir iletim hatası olasılığı yüksekse (örneğin, bir mobil istemci uygulamasından yükleme yaparken) özellikle kullanışlıdır. Ayrıca, büyük dosya yüklemelerini baştan başlatmak zorunda kalmayacağınız için ağ kesintileri durumunda bant genişliği kullanımınızı da azaltabilir.

Devam ettirilebilir yüklemeyi kullanma adımları şunlardır:

  1. Devam ettirilebilir bir oturum başlatın. Varsa meta verileri içeren yükleme URI'sine ilk istek yapın.

  2. Devam ettirilebilir oturum URI'sini kaydedin. İlk isteğin yanıtında döndürülen oturum URI'sını kaydedin. Bu oturumdaki kalan istekler için kullanacaksınız. Dosyayı yükleyin.

  3. Medya dosyasını devam ettirilebilir oturum URI'sine gönderin.

Ayrıca, devam ettirilebilir yüklemeyi kullanan uygulamaların, kesintiye uğrayan bir yüklemeyi devam ettirmek için koda sahip olması gerekir. Yükleme kesintiye uğrarsa ne kadar verinin başarıyla alındığını öğrenin ve yükleme işlemini buradan başlayarak devam ettirin.

Devam ettirilebilir oturum başlatma

Devam ettirilebilir bir yükleme başlatmak için yöntemin /upload URI'sına bir POST veya PUT isteği yapın ve uploadType=resumable sorgu parametresini ekleyin. Örneğin:

POST https://www.googleapis.com/upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=resumable

Bu başlatma isteği için gövde boş veya yalnızca meta verileri içeriyor; yüklemek istediğiniz dosyanın gerçek içeriğini sonraki isteklerde aktaracaksınız.

İlk istekle birlikte aşağıdaki HTTP üstbilgilerini kullanın:

  • X-Upload-Content-Type. Sonraki isteklerde aktarılacak yükleme verilerinin medya MIME türünü ayarlayın.

  • X-Upload-Content-Length. Sonraki isteklerde aktarılacak yükleme verilerinin bayt sayısını ayarlayın. İstek sırasında uzunluk bilinmiyorsa bu başlığı çıkarabilirsiniz.

  • Meta veri sağlıyorsanız: Content-Type. Meta verilerin veri türüne göre ayarlayın.

  • Content-Length. Bu ilk isteğin gövdesinde sağlanan bayt sayısını ayarlayın. Parçalı aktarım kodlaması kullanıyorsanız gerekli değildir.

Her yöntemin kabul edilen medya MIME türleri ve yüklenen dosyalara ilişkin boyut sınırları listesi için Yayınlama API'si referansı konusuna bakın.

Örnek: Devam ettirilebilir oturum başlatma isteği

Aşağıdaki örnekte, Play Games Services Publishing API için devam ettirilebilir bir oturumun nasıl başlatılacağı gösterilmektedir.

POST /upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=resumable HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer your_auth_token
Content-Length: 38
Content-Type: application/json; charset=UTF-8
X-Upload-Content-Type: image/png
X-Upload-Content-Length: 2000000

{
  "kind": "gamesConfiguration#imageConfiguration",
  "url": string,
  "resourceId": string,
  "imageType": string
}

Sonraki bölümde, yanıtın nasıl ele alınacağı açıklanmaktadır.

Devam ettirilebilir oturum URI'sini kaydedin

Oturum başlatma isteği başarılı olursa API sunucusu 200 OK HTTP durum koduyla yanıt verir. Ayrıca, devam ettirilebilir oturum URI'nızı belirten bir Location üst bilgisi sağlar. Aşağıdaki örnekte gösterilen Location başlığı, bu oturum için kullanılacak benzersiz yükleme kimliğini veren bir upload_id sorgu parametresi bölümü içerir.

Örnek: Devam ettirilebilir oturum başlatma yanıtı

1. Adımdaki isteğin yanıtı aşağıda verilmiştir:

HTTP/1.1 200 OK
Location: https://www.googleapis.com/upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=resumable&upload_id=xa298sd_sdlkj2
Content-Length: 0

Yukarıdaki örnek yanıtında gösterildiği gibi Location üst bilgisinin değeri, gerçek dosya yüklemeyi yapmak veya yükleme durumunu sorgulamak için HTTP uç noktası olarak kullanacağınız oturum URI'sidir.

Oturum URI'sini sonraki isteklerde kullanabilmek için kopyalayıp kaydedin.

Dosyayı yükleme

Dosyayı yüklemek için önceki adımda aldığınız yükleme URI'sine bir PUT isteği gönderin. Yükleme isteğinin biçimi şu şekildedir:

PUT session_uri

Devam ettirilebilir dosya yükleme istekleri oluşturulurken kullanılacak HTTP üstbilgileri, Content-Length öğesini içerir. Bunu, bu istekte yüklediğiniz bayt sayısına ayarlayın (bu genellikle yükleme dosyasının boyutudur.)

Örnek: Devam ettirilebilir dosya yükleme isteği

Mevcut örnek için 2.000.000 baytlık PNG dosyasının tamamını yüklemek üzere devam ettirilebilir bir isteği burada görebilirsiniz.

PUT https://www.googleapis.com/upload/games/v1configuration/images/resourceId/imageType/imageType?uploadType=resumable&upload_id=xa298sd_sdlkj2 HTTP/1.1
Content-Length: 2000000
Content-Type: image/png

bytes 0-1999999

İstek başarılı olursa sunucu bu kaynakla ilişkili tüm meta verilerle birlikte HTTP 201 Created ile yanıt verir. Devam ettirilebilir oturumun ilk isteği bir PUT ise mevcut bir kaynağı güncellemek için başarı yanıtı bu kaynakla ilişkilendirilen tüm meta verilerle birlikte 200 OK olur.

Yükleme isteği kesintiye uğrarsa veya sunucudan HTTP 503 Service Unavailable ya da başka bir 5xx yanıtı alırsanız kesintisi olan bir yüklemeyi devam ettirme bölümünde açıklanan prosedürü uygulayın.


Dosyayı parçalar halinde yükleyin

Devam ettirilebilir yüklemelerle bir dosyayı parçalara bölebilir ve her parçayı sırayla yüklemek için bir dizi istek gönderebilirsiniz. Ek isteklerle ilişkili performans maliyetleri olduğu ve genellikle gerekli olmadığı için tercih edilen yaklaşım bu değildir. Bununla birlikte, herhangi bir istekte aktarılan veri miktarını azaltmak için öbeklemeyi kullanmanız gerekebilir. Bu, belirli Google App Engine istek sınıfları için geçerli olduğu gibi, tek tek istekler için sabit bir süre sınırı olduğunda faydalıdır. Ayrıca, varsayılan olarak yükleme ilerleme durumu desteği olmayan eski tarayıcılar için yükleme ilerleme durumu göstergeleri sağlamak gibi işlemler yapmanıza da olanak tanır.

Verileri parçalar halinde yüklüyorsanız tam dosya yüklemeleri için gereken İçerik Uzunluğu başlığı ile birlikte İçerik Aralığı başlığı da gereklidir:

  • Content-Length. Yığın boyutuna veya muhtemelen daha küçük bir değere (son istekte olduğu gibi) ayarlayın.

  • Content-Range: Yüklemekte olduğunuz dosyadaki hangi baytları gösterecek şekilde ayarlayın. Örneğin Content-Range: bytes 0-524287/2000000, 2.000.000 baytlık bir dosyada ilk 524.288 baytı (256 x 1024 x 2) sağladığınızı gösterir.

Örnek: Devam ettirilebilir parçalı dosya yükleme isteği

İlk 524.288 baytı gönderen bir istek aşağıdaki gibi görünebilir:

PUT {session_uri} HTTP/1.1
Host: www.googleapis.com
Content-Length: 524288
Content-Type: image/png
Content-Range: bytes 0-524287/2000000

bytes 0-524288

İstek başarılı olursa sunucu, şimdiye kadar depolanan toplam bayt sayısını tanımlayan bir Aralık başlığıyla birlikte 308 Resume Incomplete ile yanıt verir:

HTTP/1.1 308 Resume Incomplete
Content-Length: 0
Range: bytes=0-524287

Bir sonraki yığının nereden başlayacağını belirlemek için Range başlığında döndürülen üst değeri kullanın. Dosyanın tamamı yüklenene kadar dosyanın her bir parçasını PUT işlemeye devam edin.

Herhangi bir parçanın PUT isteği kesintiye uğrarsa veya sunucudan HTTP 503 Service Unavailable ya da başka bir 5xx yanıtı alırsanız kesintisi olan yüklemeyi devam ettirme bölümünde açıklanan prosedürü uygulayın. Ancak dosyanın geri kalanını yüklemek yerine parçaları o noktadan yüklemeye devam edin.

Önemli notlar:

  • Sonraki parçanın nereden başlatılacağını belirlemek için yanıtta Range üst bilgisini kullandığınızdan emin olun. Sunucunun önceki istekte gönderilen tüm baytları aldığını varsaymayın.

  • Her yükleme URI'sının sınırlı bir ömrü vardır ve sonunda sona erer (kullanılmazsa bir gün veya kadar süre içinde). Bu nedenle, devam ettirilebilir yüklemeyi yükleme URI'sını alır almaz başlatmalı ve kesintiye uğrayan bir yüklemeyi de kesinti gerçekleştikten kısa bir süre sonra devam ettirmelisiniz.

  • Süresi dolmuş bir yükleme oturumu kimliğine sahip bir istek gönderirseniz sunucu bir 404 Not Found durum kodu döndürür. Yükleme oturumunda kurtarılamaz bir hata oluştuğunda sunucu bir 410 Gone durum kodu döndürür. Bu durumlarda, yeni bir devam ettirilebilir yükleme başlatmanız, yeni bir yükleme URI'si edinmeniz ve yeni uç noktayı kullanarak yüklemeyi baştan başlatmanız gerekir.

Dosya yükleme işleminin tamamı tamamlandığında, sunucu bu kaynakla ilişkili tüm meta verilerle birlikte HTTP 201 Created ile yanıt verir. Bu istek yeni bir varlık oluşturmak yerine mevcut bir varlığı güncelliyorsa tamamlanan yüklemenin HTTP yanıt kodu 200 OK olur.


Kesintiye uğrayan bir yüklemeyi devam ettirme

Yükleme isteği yanıt alınmadan sonlandırılır veya sunucudan HTTP 503 Service Unavailable yanıtı alırsanız kesintiye uğrayan yüklemeyi devam ettirmeniz gerekir. Kesilen bir yüklemeyi devam ettirmek için aşağıdakileri yapın:

  1. İstek durumu. Yükleme URI'sine boş bir PUT isteği göndererek yüklemenin mevcut durumunu sorgulayın. Bu istek için HTTP üst bilgileri, dosyadaki mevcut konumun bilinmediğini belirten bir Content-Range üst bilgisi içermelidir. Örneğin, toplam dosya uzunluğunuz 2.000.000 ise Content-Range değerini */2000000 olarak ayarlayın. Dosyanın tam boyutunu bilmiyorsanız Content-Range (İçerik Aralığı) değerini */* olarak ayarlayın.

  2. Yüklenen bayt sayısını al. Durum sorgusundan gelen yanıtı işleyin. Sunucu, şu ana kadar hangi baytları aldığını belirtmek için yanıtında Range üst bilgisini kullanır. Örneğin, 0-299999 öğesinin Range üst bilgisi,dosyanın ilk 300.000 baytının alındığını belirtir.

  3. Kalan verileri yükleyin. Son olarak, isteği nerede devam ettireceğinizi bildiğinize göre kalan verileri veya mevcut parçayı gönderin. Kalan verileri her iki durumda da ayrı bir yığın olarak işlemeniz gerektiğini unutmayın. Bu nedenle, yüklemeyi devam ettirdiğinizde Content-Range başlığını göndermeniz gerekir.

Örnek: Kesilen bir yüklemeyi devam ettirme

  1. Yükleme durumunu isteyin. Aşağıdaki istek, 2.000.000 baytlık dosyadaki mevcut konumun bilinmeyen olduğunu belirtmek için Content-Range üst bilgisini kullanır.

    PUT {session_uri} HTTP/1.1
    Content-Length: 0
    Content-Range: bytes */2000000
    
  2. Yanıttan şimdiye kadar yüklenen bayt sayısını çıkarın. Sunucunun yanıtında, dosyanın şu ana kadar ilk 43 baytını aldığını belirtmek için Range üst bilgisi kullanılır. Devam ettirilen yüklemeyi nereden başlatacağınızı belirlemek için Aralık başlığının üst değerini kullanın.

HTTP/1.1 308 Resume Incomplete
Content-Length: 0
Range: 0-42
  1. Yüklemeyi kaldığı yerden devam ettirin. Aşağıdaki istek, 43 bayttan başlayarak dosyanın kalan baytlarını göndererek yüklemeyi devam ettirir.
PUT {session_uri} HTTP/1.1
Content-Length: 1999957
Content-Range: bytes 43-1999999/2000000

bytes 43-1999999

En iyi uygulamalar

Medya yüklerken, hata giderme ile ilgili bazı en iyi uygulamaları bilmek faydalıdır.

  • Aşağıdakiler dahil olmak üzere bağlantı kesintileri veya 5xx hataları nedeniyle başarısız olan yüklemeleri devam ettirin veya yeniden deneyin:

    • 500 Internal Server Error
    • 502 Bad Gateway
    • 503 Service Unavailable
    • 504 Gateway Timeout
  • Yükleme istekleri devam ettirildiğinde veya yeniden denendiğinde 5xx sunucu hatası döndürülürse üstel geri çekilme stratejisi kullanın. Bu hatalar, bir sunucu aşırı yükleniyorsa ortaya çıkabilir. Üstel geri yükleme, yüksek istek hacminin veya yoğun ağ trafiğinin olduğu dönemlerde bu tür sorunların hafifletilmesine yardımcı olabilir.

  • Diğer istek türleri üstel geri yükleme ile işlenmemelidir. Ancak yine de birkaçını yeniden deneyebilirsiniz. Bu istekleri yeniden denerken yeniden deneme sayısını sınırlayın. Örneğin, kodunuz, hata bildirmeden önce on veya daha az yeniden denemeyle sınırlandırılabilir.

  • Devam ettirilebilir yüklemeler yaparken, tüm yükleme işlemini baştan başlatarak 404 Not Found ve 410 Gone hatalarını giderin.

Eksponansiyel geri yükleme

Üstel geri yükleme, istemcinin başarısız bir isteği artan bir süre içinde düzenli aralıklarla tekrar denediği ağ uygulamaları için standart bir hata işleme stratejisidir. Yüksek hacimli istek veya yoğun ağ trafiği, sunucunun hata döndürmesine neden oluyorsa üstel geri çekilme, bu hataları ele almak için iyi bir strateji olabilir. Bununla birlikte, geçersiz yetkilendirme kimlik bilgileri veya dosya bulunamadı hataları gibi ağ hacmi veya yanıt süreleriyle ilgili olmayan hataları ele almak için uygun bir strateji değildir.

Doğru kullanıldığında üstel geri yükleme özelliği, bant genişliği kullanımının verimliliğini artırır, başarılı bir yanıt almak için gereken istek sayısını azaltır ve eşzamanlı ortamlarda isteklerin işleme hızını en üst düzeye çıkarır.

Basit üstel geri yükleme uygulama akışı aşağıdaki gibidir:

  1. API'ye istekte bulunun.
  2. İsteği yeniden denemeniz gerektiğini belirten bir HTTP 503 yanıtı alın.
  3. 1 saniye +Random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  4. İsteği yeniden denemeniz gerektiğini belirten bir HTTP 503 yanıtı alın.
  5. 2 saniye +Random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  6. İsteği yeniden denemeniz gerektiğini belirten bir HTTP 503 yanıtı alın.
  7. 4 saniye +Random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  8. İsteği yeniden denemeniz gerektiğini belirten bir HTTP 503 response alın.
  9. 8 saniye + rastgele_sayı_milisaniye cinsinden bekleyin ve isteği yeniden deneyin.
  10. İsteği yeniden denemeniz gerektiğini belirten bir HTTP 503 response alın.
  11. 16 saniye + rastgele_sayı_milisaniye cinsinden bekleyin ve isteği yeniden deneyin.
  12. Durdur. Hata bildirin veya günlüğe kaydedin.

Yukarıdaki listede, rastgele_sayı_millisaniye, 1000'den küçük veya 1000'e eşit rastgele bir milisaniye sayısıdır. Küçük bir rastgele gecikme uygulamak, yükün daha eşit bir şekilde dağıtılmasına ve sunucunun damgalanma olasılığını ortadan kaldırmaya yardımcı olduğundan bu gereklidir. Her beklemenin ardından rastgele_sayı_milisaniye değeri yeniden tanımlanmalıdır.

Algoritma, n 5 olduğunda sona erecek şekilde ayarlanır. Bu üst sınır, istemcilerin sonsuza kadar yeniden deneme yapmasını engeller ve bir isteğin "kurtarılamaz hata" olarak kabul edilmesinden önce toplamda yaklaşık 32 saniyelik bir gecikme yaşanır. Özellikle uzun bir yükleme işlemi devam ediyorsa maksimum yeniden deneme sayısının daha yüksek olması uygundur. Yine de yeniden deneme gecikmesini makul bir süre, örneğin bir dakikadan kısa bir süre için sınırlandırdığınızdan emin olun.

API istemci kitaplığı kılavuzları