Firebase Storage छवियों को कैसे स्टोर और पुनर्प्राप्त करें [बंद]


268

फायरबेस पर छवियों को कैसे स्टोर और देखें?


1
यह अच्छा है, अगर मैं
फायरबेस

6
कल तक, Firebase ने एक नया फीचर जारी किया, जिसका नाम Firebase Storage (firebase.google.com/docs/storage) है, जो आपको मनमानी फाइलें (चित्र, वीडियो, ऑडियो, आदि) अपलोड और डाउनलोड करने की अनुमति देता है। यह Google क्लाउड स्टोरेज (cloud.google.com/storage) द्वारा पेटाबाइट स्केल और प्रतिस्पर्धी मूल्य के लिए समर्थित है। आपको यह निश्चित रूप से देखना चाहिए :)
माइक मैकडोनाल्ड

16
उपयोगकर्ता इसे उपयोगी पाते हैं, इसे बंद क्यों किया?
अमृत ​​लोट्फी

7
@TinyGiant यह एक सिफारिश के लिए नहीं पूछ रहा है, तो इसे इस तरह से क्यों बंद किया जाएगा? यह एक सॉफ्टवेयर सेवा की एक विशेषता के बारे में पूछ रहा है - पूरी तरह से विषय पर।

2
मैं समय से पहले बंद टिप्पणियों से नफरत करता हूं। भगवान के प्यार के लिए सीधे आगे के सवालों को बंद नहीं किया जाना चाहिए!
जेरील कुक

जवाबों:


277

अपडेट (20160519) : फायरबेस ने फायरबेज स्टोरेज नामक एक नई सुविधा जारी की । इससे आप छवियों और अन्य गैर-JSON डेटा को एक समर्पित भंडारण सेवा में अपलोड कर सकते हैं। हम अत्यधिक अनुशंसा करते हैं कि आप JSON डेटाबेस में बेस 64 एन्कोडेड डेटा के रूप में संग्रहीत करने के बजाय, छवियों को संग्रहीत करने के लिए इसका उपयोग करते हैं।

आप निश्चित रूप से कर सकते हैं! आपकी छवियां कितनी बड़ी हैं, इस पर निर्भर करते हुए, आपके पास कुछ विकल्प हैं:

1. छोटी छवियों के लिए (10mb के तहत)

हमारे पास एक उदाहरण परियोजना है जो यहां करती है: https://github.com/firebase/firepano

सामान्य दृष्टिकोण फ़ाइल को स्थानीय रूप से लोड करना है (FileReader का उपयोग करके) ताकि आप फिर इसे फायरबेस में स्टोर कर सकें, जैसा कि आप किसी अन्य डेटा पर करेंगे। चूंकि छवियाँ बाइनरी फाइलें हैं, आप बेस 64-एन्कोडेड सामग्री प्राप्त करना चाहेंगे ताकि आप इसे एक स्ट्रिंग के रूप में संग्रहीत कर सकें। या इससे भी अधिक सुविधाजनक, आप इसे एक डेटा के रूप में संग्रहीत कर सकते हैं : url जो तब img टैग के src के रूप में तैयार करने के लिए तैयार है (यह वही है जो उदाहरण करता है)!

2. बड़ी छवियों के लिए

Firebase में 10mb (utf8-encoded string data) की सीमा होती है। यदि आपकी छवि बड़ी है, तो आपको इसे 10mb विखंडू में तोड़ना होगा। हालांकि आप सही हैं कि फायरबेस छोटे स्ट्रिंग्स के लिए अधिक अनुकूलित है जो मल्टी-मेगाबाइट स्ट्रिंग्स के बजाय अक्सर बदलते हैं। यदि आपके पास बहुत से बड़े स्टैटिक डेटा हैं, तो मैं निश्चित रूप से S3 या CDN की सिफारिश करूंगा।


2
वह तो कमाल है। क्या आपने कभी कुछ फ़ाइल आकार सीमा में चलाया? मुझे नहीं लगता कि फायरबेस को मल्टी-मेगाबाइट स्ट्रिंग्स को ध्यान में रखकर बनाया गया था ...
मास्टरस्कैट

8
Firebase में 10mb (utf8-encoded string data) की सीमा होती है। यदि आपकी छवि बड़ी है, तो आपको इसे 10mb विखंडू में तोड़ना होगा। हालांकि आप सही हैं कि फायरबेस छोटे स्ट्रिंग्स के लिए अधिक अनुकूलित है जो मल्टी-मेगाबाइट स्ट्रिंग्स के बजाय अक्सर बदलते हैं। यदि आपके पास बहुत से बड़े स्टैटिक डेटा हैं, तो मैं निश्चित रूप से S3 या CDN की सिफारिश करूंगा।
माइकल लेहेंबॉयर

14
फायरबेस को वास्तव में अपने होस्टिंग सिस्टम में बड़े भंडारण को जोड़ने की आवश्यकता है, या उनके पुस्तकालयों में निर्मित एपिस के साथ एक एस 3 उदाहरण।
The_Brink

9
@ The_Brink प्रतिक्रिया के लिए धन्यवाद। यह निश्चित रूप से हमारे रडार पर है!
माइकल लेहेंबॉयर

4
@ यह सही है। मैं शायद बड़े उत्पादन साइटों के लिए इस दृष्टिकोण की सिफारिश नहीं करूंगा (आप वास्तव में एक सीडीएन-समर्थित छवि-सेवा सेवा चाहते हैं), लेकिन यह बहुत सारे उपयोग के लिए आसान और "पर्याप्त" है।
माइकल Lehenbauer

25

हां, आप फायरबेस में छवियों को स्टोर और देख सकते हैं। इमेज फाइल पाने के लिए आप फाइलपिकर का इस्तेमाल कर सकते हैं। फिर आप छवि को होस्ट कर सकते हैं लेकिन आप चाहते हैं, मुझे अमेज़ॅन एस 3 पसंद है। एक बार छवि होस्ट होने के बाद आप छवि के लिए उत्पन्न URL का उपयोग करके छवि प्रदर्शित कर सकते हैं।

उम्मीद है की यह मदद करेगा।


3
इसके लिए अपडेट किए गए फ़िरबेस डॉक्स देखें: firebase.google.com/docs/storage/#key_functions
Lukas Liesis

अगर आप अमेजन पर इमेज होस्ट करने जा रहे हैं, तो इसके बजाय फायरबेस स्टोरेज में सेव क्यों न करें ?
ओजोनुगवा जूड ओचलिफु

19

मैंने बेस 64 प्रारूप में छवियों को स्वयं संग्रहीत करना समाप्त कर दिया। फायरबेस से वापस बुलाए जाने पर मैं उनके बेस 64 मूल्य से उनका अनुवाद करता हूं।


1
इस दृष्टिकोण के साथ एकमात्र समस्या यह है कि जब छवियां बड़ी होती हैं, तो उन्हें गतिविधियों में स्थानांतरित करने से ऐप धीमा हो जाता है और कुछ मामलों में दुर्घटनाग्रस्त हो जाता है
ओजोनुगा जुड ओचलिफु

10

आप एक ऐसी सेवा का भी उपयोग कर सकते हैं, Filepickerजो आपकी छवि को उनके सर्वर पर संग्रहीत करेगी और फाइलपिकर जिसे अब फ़िलिस्तैक कहा जाता है, आपको छवि के लिए एक यूआरएल प्रदान करेगा। आप यूआरएल को फायरबेस पर स्टोर कर सकते हैं।


मैंने आपकी टिप्पणी से इस सेवा को देखा मैंने कोशिश की लेकिन इसके बारे में बहुत खुश नहीं हूं।
bpolat

3

वहाँ करने के कुछ तरीके हैं मैंने पहली बार ग्रैन्डल 2501 को जिस तरह से किया था। मैंने तब user15163 के समान किया था, आप छवि URL को फायरबेस में संग्रहीत कर सकते हैं और छवि को अपने फायरबेस होस्ट या अमेज़ॅन एस 3 पर भी होस्ट कर सकते हैं;


403 त्रुटि छवियों को सम्मिलित करने और रेंडर करने की कोशिश कर रही हैं - अपलोड होने के बाद छवियों के साथ अनुमति के मुद्दे - आप अपलोड कैसे सेट करते हैं, इस पर कोई भी जानकारी। मैंने acl: 'public-read' का उपयोग करने की कोशिश की - लेकिन फिर अपलोड विफल रहता है -403 के साथ। कोई भी जानकारी नीति doc और बकेट पॉलिसी जो मदद कर सकती है - बहुत बढ़िया होगी। AWS - प्रलेखन मुश्किल है और त्रुटि के साथ कोई डीबगिंग जानकारी नहीं है तो पहुँच अस्वीकृत है।
जमुई

2
इसे एक और प्रश्न के रूप में पूछें
जेकब हार्टमैन

उचित विचार :) किया गया - यद्यपि स्टैक अलग हो सकता है - अगर कोई उकसाता है तो आप मुझे दे सकते हैं - आपका स्वागत है। AWS S3 त्रुटि डीबगिंग सुपर निराशाजनक है - कम से कम अब तक। stackoverflow.com/questions/31998827/…
जैमी

2

JSON में Base64 स्ट्रिंग का उपयोग करना बहुत भारी होगा। पारसर को बहुत भारी उठाने की ज़रूरत होती है। वर्तमान में, Fresco केवल आधार का समर्थन करता है Base64 का समर्थन करता है। बेहतर है आप अमेजन क्लाउड या फायरबेस क्लाउड पर कुछ डालें। और URL के रूप में एक छवि प्राप्त करें। ताकि आप कैशिंग के लिए पिकासो या ग्लाइड का उपयोग कर सकें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.