我处于这种情况,我需要一个预签名的网址才能生存一个月左右。由于签名 v4 无法提供此功能,因此我决定暂时使用 V2。
我已将过期时间设置为 1 个月,但由于某种原因它会在 1 天后过期?(不知道具体到期时间,可能是同一天)
<Code>ExpiredToken</Code>
<Message>The provided token has expired.</Message>
Run Code Online (Sandbox Code Playgroud)
当我进一步深入研究时,问题似乎出在 X-Amz-Security-Token 上,它过期得太早了。但我不知道如何为此标头设置值?(找不到任何相关信息)
设置:它是一个 lambda 函数,可生成签名 url 以从 S3 获取文件。一切都是通过云信息来完成的。并使用 JavaScript SDK 完成
const s3 = new AWS.S3({
signatureVersion: 'v2',
region: 'eu-west-1'
});
const bucketParam = {
Bucket: 'test-bucket',
Key: 'testFile-1111-2222',
Expires: 2592000
};
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
amazon-s3 amazon-web-services aws-cloudformation pre-signed-url aws-lambda
所以我有这个问题,我很想:
这是必须在 YAML 中完成的事情
我不知道如何设置它......到目前为止我已经设法创建了一个完美运行的 s3 存储桶,现在我只需要将它作为触发器附加到 lambda 函数。
在 AWS 控制台中设置非常容易,但我对 YAML 没有太多经验。所以我不知道如何正确设置它,而且该文件非常敏感,所以它很痛苦:-)。
yaml 的最终结果:
yaml amazon-web-services aws-cloudformation aws-sdk aws-lambda
所以我有一个问题,每当我尝试使用预签名 URL 将文件发布到 s3 存储桶时,元数据的密钥将被强制为小写?
我查看了预签名 URL,当 URL 生成时它已经设置了小写部分,我想知道为什么?我该如何解决这个问题?
我尝试在文件的 s3 存储桶中创建手动键值对,显然我也可以在其中设置大写字母的键?
const params = {
Bucket: 'buckets3',
Key: 'hoho-fileUpload-' + uuid.v4(),
Metadata: {"FooBar": "FooBar"},
Expires: 600
};
Run Code Online (Sandbox Code Playgroud)
s3 中的电流输出:
x-amz-meta-foobar: FooBar
许愿输出:
x-amz-meta-FooBar:FooBar
metadata amazon-s3 amazon-web-services pre-signed-url aws-sdk