将图像从 url 上传到 s3
Upload image to s3 from url
我正在尝试上传一张图片,为此我有一个 url 到 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 url。
[Error: ENOENT: no such file or directory, open '<myURL HERE>']
errno: -2,
code: 'ENOENT',
syscall: 'open',
path:
'<myURL HERE>' }
有两种方法可以将文件放入 Amazon S3 存储桶:
- 通过
PutObject()
、或 上传内容
- 复制 Amazon S3 中已有的对象
因此,对于您的 "web accessible Cloudinary image",需要先检索,然后再上传。您可以完全下载图像然后上传它,或者您可以使用流主体做一些奇特的事情,其中源图像被读入缓冲区然后写入 S3。无论哪种方式,文件都需要 "read" 从 Cloudinary "written" 到 S3。
至于"web accessible Amazon S3 link",您可以使用CopyObject()
命令指示S3直接将对象从源存储桶复制到目标存储桶。 (它也可以在 个存储桶内使用。)
我正在尝试上传一张图片,为此我有一个 url 到 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 url。
[Error: ENOENT: no such file or directory, open '<myURL HERE>']
errno: -2,
code: 'ENOENT',
syscall: 'open',
path:
'<myURL HERE>' }
有两种方法可以将文件放入 Amazon S3 存储桶:
- 通过
PutObject()
、或 上传内容
- 复制 Amazon S3 中已有的对象
因此,对于您的 "web accessible Cloudinary image",需要先检索,然后再上传。您可以完全下载图像然后上传它,或者您可以使用流主体做一些奇特的事情,其中源图像被读入缓冲区然后写入 S3。无论哪种方式,文件都需要 "read" 从 Cloudinary "written" 到 S3。
至于"web accessible Amazon S3 link",您可以使用CopyObject()
命令指示S3直接将对象从源存储桶复制到目标存储桶。 (它也可以在 个存储桶内使用。)