use*_*967 2 javascript amazon-s3 amazon-web-services aws-sdk
所有,我尝试使用 S3 临时 Javascript SDK 将文件上传到 S3,但老实说,我找不到任何工作示例,包括 S3 文档。
理想情况下,我应该能够做到这一点:
s3Client = new AWS.client(new TemporaryCredential( keyId, accesskey, token ));
但是我查看了文档,没有地方提到如何使用临时凭证来创建 S3 客户端。
我们公司已经有了获取临时凭证的 api,所以我真的很想知道如何在 javascript 中做到这一点。
我不知道下面的java代码是否有js equivelant解决方案:
BasicSessionCredentials sessionCredentials = new BasicSessionCredentials(
session_creds.getAccessKeyId(),
session_creds.getSecretAccessKey(),
session_creds.getSessionToken());
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)
.build();
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议。
TemporaryCredential 只是一个常规凭证,您可以像正常方式一样使用它。
AWS.config.update({
region: "us-east-1",
credentials: new AWS.Credentials('AccessKeyId', 'SecretAccessKey', 'SessionToken')
});
var s3 = new AWS.S3();
var params = {
Body: "The quick brown fox jumps over the lazy dog",
Bucket: "example-bucket",
Key: "hello.txt"
};
s3.putObject(params, function (err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
但我建议使用预签名 URL上传文件而不是 STS TemporaryCredential。
如果您希望您的用户/客户能够将特定对象上传到您的存储桶,但不要求他们拥有 AWS 安全凭证或权限,则预签名 URL 非常有用。
-- AWS 文档
客户端(浏览器)不需要加载繁重的 AWS SDK,一个简单的 HTTP PUT 请求就是全部。
var url = 'https://example-bucket.s3.amazonaws.com/hello.txt?blablabla'
var request = new Request(url, {
method: 'PUT',
body: "The quick brown fox jumps over the lazy dog",
});
fetch(request).then(function (response) {
console.log(response);
}).catch(function (err) {
console.log(err, err.stack);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5890 次 |
| 最近记录: |