使用 pre-signed URL 的 AWS S3 更新映像(Axios-PUT 请求)
AWS S3 update image using pre-signed URL (Axios-PUT Request)
我正在尝试使用 REST PUT 请求和 Axios 将 本地 JPG 图像文件 更新到 S3 存储桶中。
我设法发送了 PUT 请求并从 AWS S3 服务得到了肯定的答复但是上传的内容不是 JPG 文件而是 JSON 文件.
这是我正在使用的代码:
//Create the FormData
var data = new FormData();
data.append('file', fs.createReadStream(image_path));
//Send the file to File-system
console.log("Sending file to S3...");
const axiosResponse = await axios.put(image_signed_url, {
data: data,
headers: { 'Content-Type': 'multipart/form-data' }
}).catch(function(error) {
console.log(JSON.stringify(error));
return null;
});
我已经尝试将 headers 更改为 {'Content-Type': 'application/octet-stream' }
但我得到了相同的结果。
无法使 AXIOS 工作以上传图像。
node-fetch 模块将图像作为二进制文件发送并指定了“内容类型”。
如果我尝试使用 AXIOS 进行同样的操作,它总是将图像打包到表单数据中,结果是 JSON 文件而不是图像上传到 S3 存储桶中。
//Send the file to File-system
console.log("Sending file to S3...");
const resp = await fetch(image_signed_url, {
method: 'PUT',
body: fs.readFileSync(image_path),
headers: {
'Content-Type': 'image/jpeg',
},
}).catch( err => {
console.log(err);
return null;
});
我正在尝试使用 REST PUT 请求和 Axios 将 本地 JPG 图像文件 更新到 S3 存储桶中。
我设法发送了 PUT 请求并从 AWS S3 服务得到了肯定的答复但是上传的内容不是 JPG 文件而是 JSON 文件.
这是我正在使用的代码:
//Create the FormData
var data = new FormData();
data.append('file', fs.createReadStream(image_path));
//Send the file to File-system
console.log("Sending file to S3...");
const axiosResponse = await axios.put(image_signed_url, {
data: data,
headers: { 'Content-Type': 'multipart/form-data' }
}).catch(function(error) {
console.log(JSON.stringify(error));
return null;
});
我已经尝试将 headers 更改为 {'Content-Type': 'application/octet-stream' }
但我得到了相同的结果。
无法使 AXIOS 工作以上传图像。
node-fetch 模块将图像作为二进制文件发送并指定了“内容类型”。
如果我尝试使用 AXIOS 进行同样的操作,它总是将图像打包到表单数据中,结果是 JSON 文件而不是图像上传到 S3 存储桶中。
//Send the file to File-system
console.log("Sending file to S3...");
const resp = await fetch(image_signed_url, {
method: 'PUT',
body: fs.readFileSync(image_path),
headers: {
'Content-Type': 'image/jpeg',
},
}).catch( err => {
console.log(err);
return null;
});