【发布时间】:2020-08-20 13:54:10
【问题描述】:
我正在尝试为我的 s3 存储桶中的文件生成预签名的 url,这样我网站的用户就不会拥有指向实际文件的链接。我一直在尝试使用以下代码:
const AWS = require('aws-sdk');
const s3 = new AWS.S3()
AWS.config.update({accessKeyId: 'AKIAVXSBEXAMPLE', secretAccessKey: 'EXAMPLE5ig8MDGZD8p8iTj7t3KEXAMPLE'})
// Tried with and without this. Since s3 is not region-specific, I don't
// think it should be necessary.
AWS.config.update({region: 'eu-west-2'})
const myBucket = 'bucketexample'
const myKey = 'example.png'
const signedUrlExpireSeconds = 60 * 5
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey,
Expires: signedUrlExpireSeconds
})
setTimeout(function(){ console.log("url", url); }, 3000);
console.log("url:", url)
但它返回的只是:“https://s3.amazonaws.com/”
我也尝试过使用此代码:
const AWS = require('aws-sdk');
var s3 = new AWS.S3();
var params = {Bucket: 'bucketexample', Key: 'example.png'};
s3.getSignedUrl('putObject', params, function (err, url) {
console.log('The URL is', url);
});
不返回任何内容。有谁知道他们为什么不返回有效的网址?
【问题讨论】:
-
我正在尝试解决同样的问题...如果我发现任何问题,我会通知您。
-
谢谢,如果有什么发现我会告诉你的。
标签: javascript amazon-s3 pre-signed-url