Cloud Storage for Firebase आपको किसी Cloud Storage बकेट दी गई और Firebase से मैनेज होता है.
रेफ़रंस बनाना
फ़ाइल अपलोड करने के लिए, सबसे पहले Cloud Storage पहचान फ़ाइल बनाएं Cloud Storage में उस जगह पर जाएं जहां आपको फ़ाइल अपलोड करनी है.
आप अपने चैनल के रूट में चाइल्ड पाथ को जोड़कर रेफ़रंस बना सकते हैं Cloud Storage बकेट:
// Create a root reference StorageReference storage_ref = storage->GetReference(); // Create a reference to "mountains.jpg" StorageReference mountains_ref = storage_ref.Child("mountains.jpg"); // Create a reference to 'images/mountains.jpg' StorageReference mountain_images_ref = storage_ref.Child("images/mountains.jpg"); // While the file names are the same, the references point to different files mountains_ref.name() == mountain_images_ref.name(); // true mountains_ref.full_path() == mountain_images_ref.full_path(); // false
आप अपने Cloud Storage बकेट. आपका संदर्भ किसी चाइल्ड यूआरएल पर ले जाना चाहिए.
फ़ाइलें अपलोड करें
आपको पहचान फ़ाइल मिलने के बाद, आप Cloud Storage पर फ़ाइलें अपलोड कर सकते हैं दो तरीके से:
- मेमोरी में बाइट बफ़र से अपलोड करें
- डिवाइस पर मौजूद फ़ाइल दिखाने वाले फ़ाइल पाथ से अपलोड करें
मेमोरी में मौजूद डेटा से अपलोड करें
PutData()
तरीका, किसी फ़ाइल को अपलोड करने का सबसे आसान तरीका है
Cloud Storage. PutData()
एक बाइट बफ़र लेता है और
Future<Metadata>
जिसमें फ़ाइल के बारे में जानकारी होगी
जब फ़्यूचर पूरा हो जाता है. Controller
का इस्तेमाल करके, अपने अपलोड और
तो उसकी स्थिति पर नज़र रखें.
// Data in memory const size_t kByteBufferSize = ... uint8_t byte_buffer[kByteBufferSize] = { ... }; // Create a reference to the file you want to upload StorageReference rivers_ref = storage_ref.Child("images/rivers.jpg"); // Upload the file to the path "images/rivers.jpg" Futurefuture = rivers_ref.PutBytes(byte_buffer, kByteBufferSize);
इस दौरान अनुरोध किया गया है, लेकिन हमें आने वाले समय तक इंतज़ार करना होगा फ़ाइल अपलोड करने से पहले पूरा करें. आम तौर पर, गेम लूप में चलते हैं और अन्य ऐप्लिकेशन की तुलना में, कम कॉलबैक होते हैं, इसलिए आम तौर पर पूरा हुआ.
if (future.status() != firebase::kFutureStatusPending) { if (future.status() != firebase::kFutureStatusComplete) { LogMessage("ERROR: GetData() returned an invalid future."); // Handle the error... } else if (future.Error() != firebase::storage::kErrorNone) { LogMessage("ERROR: GetData() returned error %d: %s", future.Error(), future.error_message()); // Handle the error... } } else { // Metadata contains file metadata such as size, content-type, and download URL. Metadata* metadata = future.Result(); std::string download_url = metadata->download_url(); } }
किसी डिवाइस पर मौजूद फ़ाइल से अपलोड करें
आप
कैमरा, PutFile()
तरीके से. PutFile()
ने std::string
लिया
फ़ाइल के पाथ को दिखाता है और यह
Future<Metadata>
, जिसमें यह शामिल होगा
भविष्य के पूरा होने पर फ़ाइल की जानकारी. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए
अपलोड किए गए डेटा को मैनेज करने और उसकी स्थिति को मॉनिटर करने के लिए, Controller
.
// File located on disk std::string local_file = ... // Create a reference to the file you want to upload StorageReference rivers_ref = storage_ref.Child("images/rivers.jpg"); // Upload the file to the path "images/rivers.jpg" Futurefuture = rivers_ref.PutFile(localFile); // Wait for Future to complete... if (future.Error() != firebase::storage::kErrorNone) { // Uh-oh, an error occurred! } else { // Metadata contains file metadata such as size, content-type, and download URL. Metadata* metadata = future.Result(); std::string download_url = metadata->download_url(); }
अगर आप अपने अपलोड को सक्रिय रूप से प्रबंधित करना चाहते हैं, तो आप एक Controller
PutFile()
या PutBytes()
तरीके. इससे आपको इन कामों के लिए कंट्रोलर का इस्तेमाल करने की सुविधा मिलती है
अपलोड की प्रोसेस को देख सकता है. इनके लिए अपलोड मैनेज करें देखें
ज़्यादा जानकारी देखें.
फ़ाइल मेटाडेटा जोड़ें
फ़ाइलें अपलोड करते समय भी मेटाडेटा को शामिल किया जा सकता है. इस मेटाडेटा में यह शामिल है
फ़ाइल मेटाडेटा की सामान्य प्रॉपर्टी, जैसे कि name
, size
, और content_type
(इसे आम तौर पर MIME टाइप कहा जाता है). PutFile()
तरीका अपने-आप यह अनुमान लगाता है
फ़ाइल नाम एक्सटेंशन से सामग्री प्रकार, लेकिन आप
अपने-आप पता लगाने वाला टाइप चुनने के लिए, मेटाडेटा में content_type
डालें. अगर आपको
content_type
उपलब्ध कराएं और Cloud Storage, इनसे डिफ़ॉल्ट वैल्यू का अनुमान नहीं लगा सकता
तो Cloud Storage application/octet-stream
का इस्तेमाल करता है. यहां जाएं:
फ़ाइल मेटाडेटा का इस्तेमाल करना
सेक्शन देखें.
// Create storage reference StorageReference mountains_ref = storage_ref.Child("images/mountains.jpg"); // Create file metadata including the content type StorageMetadata metadata; metadata.set_content_type("image/jpeg"); // Upload data and metadata mountains_ref.PutBytes(data, metadata); // Upload file and metadata mountains_ref.PutFile(local_file, metadata);
अपलोड प्रबंधित करें
अपलोड शुरू करने के अलावा, आप इनका इस्तेमाल करके अपलोड को रोक सकते हैं, फिर से शुरू कर सकते हैं या रद्द कर सकते हैं
Pause()
, Resume()
, और Cancel()
तरीकों से Controller
को ऐक्सेस किया जा सकता है.
वैकल्पिक रूप से PutBytes()
या PutFile()
मेथड को पास करें.
// Start uploading a file firebase::storage::Controller controller; storage_ref.Child("images/mountains.jpg").PutFile(local_file, nullptr, &controller); // Pause the upload controller.Pause(); // Resume the upload controller.Resume(); // Cancel the upload controller.Cancel();
अपलोड की स्थिति पर नज़र रखें
अपलोड किए गए पॉडकास्ट में लिसनर जोड़ा जा सकता है, ताकि आप अपलोड करें.
class MyListener : public firebase::storage::Listener { public: virtual void OnProgress(firebase::storage::Controller* controller) { // A progress event occurred } }; { // Start uploading a file MyEventListener my_listener; storage_ref.Child("images/mountains.jpg").PutFile(local_file, my_listener); }
गड़बड़ी ठीक करना
अपलोड करते समय गड़बड़ियां होने की कई वजहें हो सकती हैं. इनमें ये शामिल हैं डिवाइस में मौजूद फ़ाइल मौजूद न हो या उपयोगकर्ता को उसे अपलोड करने की अनुमति न हो पसंदीदा फ़ाइल चुनें. आपको यहां पर गड़बड़ियों के बारे में ज़्यादा जानकारी मिल सकती है: गड़बड़ियां ठीक करें सेक्शन में जाएं.
अगले चरण
अब जब आपने फ़ाइलें अपलोड कर ली हैं, तो आइए, अब उन्हें डाउनलोड करें Cloud Storage से शुरू.