使用aws sdk for javascript连接到对象存储

有时候我们需要使用代码控制使用对象存储,比如上传、下载文件等。这时候我们可以使用aws sdk for javascript来连接到对象存储。

有关更多S3协议的操作可以参考 AWS SDK for JavaScript

首先我们需要在Nodejs项目安装中引入AWS SDK包:

npm i @aws-sdk/client-s3

然后我们可以使用以下代码来连接到对象存储:

        const S3 = require("@aws-sdk/client-s3");
        const {ListBucketsCommand} = require("@aws-sdk/client-s3");
        const { S3Client, PutObjectCommand } = S3;
        const region = "rainyun";
        const s3Client = new S3Client({
            region,
            endpoint: `https://cn-sy1.rains3.com`,
            credentials: {
                accessKeyId: "填入雨云对象存储的AccessKey",
                secretAccessKey: "填入雨云对象存储的SecretKey",
            },
        })

        s3Client.send(new ListBucketsCommand({})).then(data=>console.log(data));
        

配置好对象存储的key后,直接运行代码,如果配置正确并且网络通畅,你将会看到输出的存储桶名。

生成预签名URL

有时候我们需要生成一个预签名URL,用于临时授权访问对象存储中的文件。我们可以使用以下代码来生成预签名URL:

const {GetObjectCommand} = require("@aws-sdk/client-s3");
const presigner = require("@aws-sdk/s3-request-presigner");
const command = new GetObjectCommand({ Bucket: "存储桶名", Key: "文件路径" });
const exp_time = 60 * 60//设置有效期一小时
presigner.getSignedUrl(s3Client,command,exp_time).then(data=> console.log(data))

其他语言

如果需要使用其他编程语言使用S3协议,可以参考以下链接:

语言 访问地址 SDK 版本
.NET dotnetv3/ 3.5+
.NET dotnet/ 3.5
C++ cpp/ 1
Go gov2/ 2
Go go/ 1
Java javav2/ 2
Java java/ 1
JavaScript javascriptv3/ 3
JavaScript javascript/ 2
Kotlin kotlin/ 1
PHP php/ 3
Python python/ 3
Ruby ruby/ 3
Rust rustv1/ 1
Swift swift/ preview
1 个赞