如何使用请求将文件从节点发送到Amazon S3?

时间:2019-09-11 10:38:06

标签: node.js amazon-web-services express amazon-s3 requestjs

我正在尝试使用fs.createReadStream()发送文件,但是它不起作用或出现任何错误。

我从节点中蒸出文件后尝试使用请求将文件放入s3。

-1001

当我更改第一部分以从URL获取图像时

const fs = require("fs");
const request = require("request");
const path = require("path");
let imagePath = path.join(__dirname,"../../public/images/img.jpg");

fs.createReadStream(imagePath).pipe(request.put(signedRequest));

它可以工作并将图像上传到s3。

为什么有这种情况发生?还是我可以使用其他方法将文件从节点发送到s3?

1 个答案:

答案 0 :(得分:1)

尝试aws-sdk npm package
您的代码如下所示:

const params = {
  Bucket: bucket,
  Key: fileName,
  Body: data,
};

const options = {
  ACL: 'private',
  CacheControl: 'max-age=86400',
  ContentType: 'text/plain',
};

const s3 = new S3({
  region: 'us-east-1',
  apiVersion: '2006-03-01',
});

await s3.upload(params, options).promise();


以下是有用的链接:12