gpt4 book ai didi

node.js - 给定 https s3 url 将文件上传到 s3

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:39 25 4
gpt4 key购买 nike

我正在尝试将一个对象从 s3 存储桶复制到我的 s3 存储桶,但我得到了一个像这样的文件的 http url;

https://not-my-bucket.s3.amazonaws.com/123456738160996-2019-03-23-eo_branch_cta_view-v2-cf5e81e668466de13406877ad681895f6fdd50f38ab7fdb48193d78210098b81-acZMLZ.csv.gz?Signature=12345678Hr3ght0cOPw7bLz%2FJWM%3D&AWSAccessKeyId=123456&Expires=1554017348

如果我抛出这个浏览器,我会得到一个 csv,完全不用担心(注意:我已经模糊了真实网址的部分内容,所以它对你不起作用)。

我在 Node 中使用 copyObject API 并使用以下参数:

var 参数 = { 桶:“我-桶”, 复制来源:“https://not-my-bucket.s3.amazonaws.com/123456738160996-2019-03-23-eo_branch_cta_view-v2-cf5e81e668466de13406877ad681895f6fdd50f38ab7fdb48193d78210098b81-acZMLZ.csv.gz?Signature=12345678Hr3ght0cOPw7bLz%2FJWM%3D&AWSAccessKeyId=123456&Expires=1554017348” ,键:“数据” };

我不断收到错误:“InvalidArgument:不支持的复制源参数。”

我做错了什么?

最佳答案

S3 不支持使用预签名 URL(或任何其他 URL)作为 CopySource。您想要的值为 /${bucket}/${key},在本例中为 /not-my-bucket/1234567381...acZMLZ.csv.gz(前导 https:// 替换为前导斜杠,.s3.amazonaws.com 已删除,? 及其后面的所有内容均已删除)。

但是...这仍然不太可能起作用,除非调用 copyObject() 的用户有权直接读取源对象,而这不太可能...否则第三方不会向您提供预签名 URL。

按照上述方式“修复”您的请求可能会将错误更改为 AccessDenied

如果没有直接读取对象的权限,则无法使用copyObject()。您需要下载该文件,然后分两步将其上传到您的存储桶。

关于node.js - 给定 https s3 url 将文件上传到 s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55370204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com