এই পৃষ্ঠাটি বর্ণনা করে যে কীভাবে রাস্তার দৃশ্য পাবলিশ এপিআই-এ পুনরায় শুরু করার যোগ্য আপলোডের অনুরোধ করা যায়। এই প্রোটোকল আপনাকে একটি আপলোড অপারেশন পুনরায় শুরু করার অনুমতি দেয় যখন যোগাযোগের ব্যর্থতা ডেটা প্রবাহে বাধা দেয়। এই বিকল্পটি ব্যবহার করুন যদি:
- আপনি বড় ফাইল আপলোড করছেন.
- নেটওয়ার্ক বাধা বা অন্য কিছু ট্রান্সমিশন ব্যর্থতার সম্ভাবনা বেশি (উদাহরণস্বরূপ, যদি আপনি একটি মোবাইল অ্যাপ থেকে একটি ফাইল আপলোড করছেন)।
নেটওয়ার্ক ব্যর্থতার সময় পুনরায় শুরু করা আপলোডগুলি আপনার ব্যান্ডউইথের ব্যবহার কমাতে পারে, কারণ আপনাকে শুরু থেকে বড় ফাইল আপলোডগুলি পুনরায় চালু করতে হবে না।
আপনি যদি একটি নির্ভরযোগ্য নেটওয়ার্ক সংযোগের মাধ্যমে ছোট ফাইল পাঠান, আপনি পরিবর্তে একটি সাধারণ আপলোড ব্যবহার করতে পারেন৷
একটি পুনঃসূচনাযোগ্য আপলোড সেশন শুরু করা হচ্ছে৷
আপনি একটি uploadUrl
প্রাপ্ত করার পরে, আপনি একটি পুনঃসূচনাযোগ্য আপলোড সেশন শুরু করতে পারেন:
-
uploadUrl
একটিPOST
অনুরোধ তৈরি করুন। নিম্নলিখিত HTTP শিরোনাম যোগ করুন:
-
X-Goog-Upload-Protocol
:resumable
জন্য সেট করুন। -
X-Goog-Upload-Header-Content-Length
: ফাইল ডেটার মোট বাইটের সংখ্যায় সেট করুন, যা পরবর্তী অনুরোধে স্থানান্তর করা হবে। -
X-Goog-Upload-Header-Content-Type
: ফাইল ডেটার MIME প্রকারে সেট করুন৷ -
X-Goog-Upload-Command
:start
করতে সেট করুন।
-
অনুরোধ পাঠান।
উদাহরণ: একটি পুনঃসূচনাযোগ্য আপলোড সেশন শুরু করা
নিম্নলিখিত উদাহরণ দেখায় কিভাবে একটি নতুন ফাইল আপলোড করার জন্য একটি পুনরায় শুরু করার যোগ্য সেশন শুরু করতে হয়। এই ক্ষেত্রে, ফাইলটি একটি চিত্র এবং ফাইলটিতে মোট বাইটের সংখ্যা 4200000। উল্লেখ্য যে অনুরোধের মূল অংশটি খালি; অতএব, Content-Length
শিরোনাম 0 এ সেট করা হয়েছে।
POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234 HTTP/1.1
Authorization: Bearer [YOUR_AUTH_TOKEN]
Content-Length: 0
X-Goog-Upload-Protocol: resumable
X-Goog-Upload-Header-Content-Length: 4200000
X-Goog-Upload-Header-Content-Type: image/jpeg
X-Goog-Upload-Command: start
পুনঃসূচনাযোগ্য সেশনের URL সংরক্ষণ করা বর্ণনা করে যে কীভাবে পুনরায় শুরুযোগ্য আপলোড সেশন শুরু করার অনুরোধের প্রতিক্রিয়া পরিচালনা করতে হয়।
পুনরায় শুরু করা সেশন URL সংরক্ষণ করা হচ্ছে
একটি পুনঃসূচনাযোগ্য আপলোড সেশন শুরু করার জন্য পাঠানো অনুরোধের জন্য, সার্ভার নিম্নলিখিত শিরোনাম সহ একটি 200 OK
HTTP স্ট্যাটাস কোড সহ উত্তর দেবে:
-
X-Goog-Upload-URL
: একটি অনন্য URL যা অবশিষ্ট সমস্ত অনুরোধের মাধ্যমে আপলোড সম্পূর্ণ করতে ব্যবহার করা আবশ্যক৷
অনুলিপি করুন এবং পুনরায় শুরু করা ression URL সংরক্ষণ করুন যাতে আপনি পরবর্তী অনুরোধের জন্য এটি ব্যবহার করতে পারেন।
উদাহরণ: পুনরায় শুরু করা সেশনের URL সংরক্ষণ করা হচ্ছে
নিম্নলিখিত উদাহরণটি একটি প্রতিক্রিয়া দেখায় যাতে একটি পুনঃসূচনাযোগ্য সেশন URL এবং একটি আকারের গ্রানুলারিটি প্রয়োজনীয়তা রয়েছে৷
HTTP/1.1 200 OK
X-Goog-Upload-URL: https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable
ফাইল আপলোড করা হচ্ছে
একটি পুনরায় শুরু করা সেশন সহ একটি ফাইল আপলোড করার দুটি উপায় রয়েছে:
- একক অনুরোধে। এই পদ্ধতিটি সাধারণত সর্বোত্তম, কারণ এটির জন্য কম অনুরোধের প্রয়োজন এবং এইভাবে আরও ভাল কার্যকারিতা রয়েছে।
- একাধিক খণ্ডে। এই পদ্ধতিটি ব্যবহার করুন যদি:
- আপনাকে যেকোনো একক অনুরোধে স্থানান্তরিত ডেটার পরিমাণ কমাতে হবে। পৃথক অনুরোধের জন্য একটি নির্দিষ্ট সময়সীমা থাকলে আপনাকে এটি করতে হতে পারে।
- আপনাকে আপলোডের অগ্রগতি দেখানো একটি কাস্টমাইজড সূচক প্রদান করতে হবে।
- আপনার জানতে হবে কখন ডেটা বাতিল করা নিরাপদ।
একক অনুরোধ
একটি একক অনুরোধে ফাইল আপলোড করতে:
- পুনরায় শুরু করা সেশন URL-এ একটি
POST
অনুরোধ তৈরি করুন৷ - অনুরোধের বডিতে ফাইলের ডেটা যোগ করুন।
নিম্নলিখিত HTTP শিরোনাম যোগ করুন:
-
Content-Length
: ফাইলে বাইটের সংখ্যা নির্ধারণ করুন। -
X-Goog-Upload-Command
:upload, finalize
।
-
অনুরোধ পাঠান।
যদি আপলোডের অনুরোধ বাধাপ্রাপ্ত হয় বা আপনি একটি 5xx
প্রতিক্রিয়া পান, তাহলে একটি বাধাপ্রাপ্ত আপলোড পুনরায় শুরু করার পদ্ধতি অনুসরণ করুন।
একাধিক খণ্ড
ফাইলটি একাধিক খণ্ডে আপলোড করতে:
- পুনরায় শুরু করা সেশন URL-এ একটি
POST
অনুরোধ তৈরি করুন৷ - অনুরোধের বডিতে খণ্ডের ডেটা যোগ করুন। 2 MiB (মেবিবাইট) এর গুণিতক অংশে খণ্ড তৈরি করুন, চূড়ান্ত অংশটি ছাড়া যা আপলোড সম্পূর্ণ করে। খণ্ডের আকার যতটা সম্ভব বড় রাখুন যাতে আপলোড কার্যকর হয়।
নিম্নলিখিত HTTP শিরোনাম যোগ করুন:
-
Content-Length
: খণ্ডে বাইটের সংখ্যা নির্ধারণ করুন। -
X-Goog-Upload-Command
:upload
করতে সেট করুন। শেষ খণ্ডের জন্য,upload, finalize
। -
X-Goog-Upload-Offset
: অফসেটে সেট করুন যেখানে বাইট লেখা উচিত। উল্লেখ্য যে বাইটগুলি অবশ্যই সিরিয়ালি আপলোড করতে হবে।
-
অনুরোধ পাঠান। যদি আপলোডের অনুরোধ বাধাপ্রাপ্ত হয় বা আপনি একটি
5xx
প্রতিক্রিয়া পান, তাহলে একটি বাধাপ্রাপ্ত আপলোড পুনরায় শুরু করার পদ্ধতি অনুসরণ করুন।ফাইলের প্রতিটি অবশিষ্ট অংশের জন্য ধাপ 1 থেকে 4 পুনরাবৃত্তি করুন।
উদাহরণ: ফাইল আপলোড করা
একক অনুরোধ
নিম্নলিখিত উদাহরণটি পূর্ববর্তী ধাপে প্রাপ্ত পুনঃসূচনাযোগ্য সেশন URL ব্যবহার করে একটি একক অনুরোধে একটি সম্পূর্ণ 4,200,000-বাইট JPEG ফাইল আপলোড করার জন্য একটি পুনরায় শুরুযোগ্য অনুরোধ দেখায়:
POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1 Content-Length: 4200000 X-Goog-Upload-Command: upload, finalize X-Goog-Upload-Offset: 0 [BYTES 0-4199999]
অনুরোধ সফল হলে, আপনি একটি 200 OK
HTTP স্ট্যাটাস কোড পাবেন।
একাধিক খণ্ড
নিম্নলিখিত উদাহরণটি পুনরায় শুরু করা সেশন URL এবং পূর্ববর্তী ধাপে প্রাপ্ত আকারের গ্রানুলারিটি ব্যবহার করে একাধিক খণ্ডে একটি 4,200,000-বাইট JPEG ফাইল আপলোড করার জন্য একটি পুনরায় শুরুযোগ্য অনুরোধ দেখায়। এই উদাহরণটি 2097000 বাইটের একটি খণ্ড আকার ব্যবহার করে, যা 2 MiB (মেবিবাইট) এর একাধিক।
প্রথম খণ্ড:
POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1 Content-Length: 2097000 X-Goog-Upload-Command: upload X-Goog-Upload-Offset: 0[BYTES 0-2096999]
দ্বিতীয় খণ্ড:
POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1 Content-Length: 2097000 X-Goog-Upload-Command: upload X-Goog-Upload-Offset: 2097000[BYTES 2097000-4193999]
শেষ খণ্ড:
POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1 Content-Length: 6000 X-Goog-Upload-Command: upload, finalize X-Goog-Upload-Offset: 4194000[BYTES 4194000-4200000]
একটি বাধাপ্রাপ্ত আপলোড পুনরায় শুরু করা হচ্ছে৷
আপলোডের অনুরোধ বাধাগ্রস্ত হলে বা আপনি যদি একটি নন- 200
HTTP স্ট্যাটাস কোড পান, তাহলে কতটা আপলোড সফল হয়েছে তা জানতে সার্ভারকে জিজ্ঞাসা করুন:
- পুনরায় শুরু করা সেশন URL-এ একটি
POST
অনুরোধ তৈরি করুন৷ -
query
জন্যX-Goog-Upload-Command
সেট করুন। - অনুরোধ পাঠান।
সার্ভার একটি 200 OK
HTTP স্ট্যাটাস কোড এবং আপলোডের বর্তমান আকারের সাথে প্রতিক্রিয়া জানাবে:
HTTP/1.1 200 OK
X-Goog-Upload-Status: active
X-Goog-Upload-Size-Received: 100
তারপরে আপনি এই অফসেটে আপলোড পুনরায় শুরু করতে পারেন। আপনাকে অবশ্যই সার্ভার দ্বারা প্রদত্ত অফসেটে পুনরায় শুরু করতে হবে যদি না আপনি একটি সম্মিলিত আপলোড এবং চূড়ান্ত কমান্ড না পাঠান, এই ক্ষেত্রে আপনি অফসেট 0 এ পুনরায় শুরু করতে পারেন।
যদি আপনার ক্যোয়ারী কমান্ডের HTTP প্রতিক্রিয়াতে X-Goog-Upload-Status
শিরোনামটি উপস্থিত থাকে এবং মান active
না হয়, তাহলে আপলোড ইতিমধ্যেই বন্ধ হয়ে গেছে৷