我正在尝试上传图片,对此我有一个s3的网址
我想做同样的事情而不将图像下载到本地存储中
filePath = imageURL;
let params = {
Bucket: 'bucketname',
Body: fs.createReadStream(filePath),
Key: "folder/" + id + "originalImage"
};
s3.upload(params, function (err, data) {
if (err) console.log(err);
if (data) console.log("original image success");
});
期望成功,但会出错: myURL是https可以公开访问的网址。
[Error: ENOENT: no such file or directory, open '<myURL HERE>']
errno: -2,
code: 'ENOENT',
syscall: 'open',
path:
'<myURL HERE>' }
答案 0 :(得分:0)
有两种方法将文件放入Amazon S3存储桶:
PutObject()
,或 因此,对于您的“可通过网络访问的Cloudinary映像”,将需要对其进行检索,然后将其上传。您可以完全下载图像然后上载它,也可以对流式处理主体进行一些幻想,将源图像读入缓冲区然后写入S3。无论哪种方式,都需要从Cloudinary中“读取”文件并将其“写入”到S3。
对于“可访问Web的Amazon S3链接”,您可以使用CopyObject()
命令指示S3将对象直接从源存储桶复制到目标存储桶。 (它在 桶中也可以使用。)