प्रतिक्रिया ड्रॉपज़ोन का उपयोग करके, मैंने onDrop
कॉलबैक का उपयोग कर छवि को सफलतापूर्वक एक्सेस कर लिया है। हालांकि, मैं अपने सर्वर पर छवि भेजकर, एस 3 बाल्टी में सहेजकर और क्लाइंट को छवि पर हस्ताक्षरित यूआरएल लौटकर अमेज़ॅन एस 3 पर अपलोड करने की कोशिश कर रहा हूं।प्रतिक्रिया ड्रॉपज़ोन, छवि अपलोड करने के लिए कैसे?
मैं अब तक की जानकारी के साथ ऐसा नहीं कर सकता और दस्तावेज़ मेरे ज्ञान के लिए इसका उल्लेख नहीं करते हैं।
onDrop
फाइलों के साथ मेरी redux कार्यों में एक समारोह कॉल से चलाता है:
export function saveImageToS3 (files, user) {
file = files[0]
// file.name -> filename.png
// file -> the entire file object
// filepreview -> blob:http:localhost:3000/1ds3-sdfw2-23as2
return {
[CALL_API] : {
method:'post',
path: '/api/image',
successType: A.SAVE_IMAGE,
body: {
name: file.name,
file: file,
preview: file.preview,
username: user
}
}
}
}
हालांकि, जब मैं अपने सर्वर से मिलता है, मुझे यकीन है कि इस ब्लॉब छवि को बचाने के लिए (है कि केवल से संदर्भित है नहीं कर रहा हूँ ब्राउज़र।)
server.post('/api/image', (req, res) => {
// req.body.preview --> blob:http://localhost:3000/1ds3-sdfw2-23as2
// req.body.file -> {preview:blob:http://localhost:3000/1ds3-sdfw2-23as2}, no other properties for some reason
})
ऐसा लगता है कि आप ब्लॉब के बाइट्स के बजाय ब्लॉब के URL अपलोड कर रहे हैं। बाइट्स प्राप्त करने के लिए आपको फ़ाइल रीडर/ऐरेबफर का उपयोग करने में ब्लॉब को पढ़ने की आवश्यकता होगी - ऐसा करने के तरीके पर बहुत सारे नमूना कोड हैं। लेकिन जब मैंने थोड़ा सा खोज किया, तो मुझे यह पता चला, शायद यह आपकी मदद कर सकता है: https://www.npmjs.com/package/react-dropzone-s3-uploader –
किसी और के लिए - मुझे भी मल्टर सर्वर-साइड का उपयोग करना पड़ा चूंकि उसने मल्टीपार्ट फॉर्म डेटा पंजीकृत नहीं किया है। मैंने ऑब्जेक्ट बनाने के लिए नए फॉर्मडाटा के साथ नीचे दिए गए सुझावों का उपयोग किया, और फिर node में m.pter को app.post ('/ api/image', upload.single ('file'), function() {...}) के रूप में इस्तेमाल किया इसका ध्यान रखें। –