我正在从我的react原生应用程序发送图像数据到我的node js后端,我想上传到S3。我想确切地知道我必须将数据更改为哪种格式,以便将其上传到我的S3。下面是我目前在后端记录的formdata。
[
'file',
{
uri: 'file:///var/mobile/Containers/Data/Application/CA974BC6-6943-4135-89DE-235BC593A54F/Library/Caches/ExponentExperienceData/%2540lb2020%252Fmy/ImagePicker/D7119C77-60D0-46CC-A194-4F1FDE0D9A3D.jpg',
type: 'image/jpeg',
name: 'hi.jpg'
}
]
我的后端也有下面的代码。将使上述代码等同于文件工作?如果没有,建议将不胜感激。
const params = {
Bucket:"myarrowbucket", // bucket you want to upload to
Key: "filename"+".png",
Body: file,
ContentType:'image/png',
ACL: "public-read",
};
我已尝试上传,但图像在S3上无法正确打开或出现错误:不支持的正文有效负载对象
已更新代码- -找不到路径错误
app.post("/upload", async (req, res) => {
const uri = (req.body._parts[0][1].uri)
const file = uri.substring(7);
const fileStream = fs.createReadStream(file);
const params = {
Bucket:"myarrowbucket", // bucket you want to upload to
Key: "filename"+".png",
Body: fileStream,
ContentType:'image/png',
ACL: "public-read",
};
const data = await client.upload(params).promise();
return data.Location; // returns the url location
});
1条答案
按热度按时间cpjpxq1n1#
我已经尝试上传和图像无法打开正确的S3或给我〉错误:不支持的正文有效负载对象
您需要向S3客户端提供一个流。
您可以使用form-data之类的库来处理表单数据转换。