你是否经常需要为存储在AWS S3上的对象生成签名URL,以便将其保护免遭未经授权的访问?如果是,那么你可能会发现AWS Node.js SDK V3是一个非常有用的工具。今天,在这个快速示例中,我们将研究使用该SDK通过身份验证生成签名URL的过程。

第一步是在你的Node.js应用程序中安装AWS SDK。你可以通过运行以下命令来完成此操作:

“`

npm install aws-sdk

“`

接下来,我们可以通过执行以下代码来设置SDK:

“`

const { S3 } = require(‘@aws-sdk/client-s3’);

const { fromIni } = require(‘@aws-sdk/credential-provider-ini’);

const region = ‘[YOUR_AWS_REGION]’;

const credentials = fromIni();

const s3Client = new S3({

credentials,

region,

});

“`

要创建签名URL,我们需要先获得存储在S3上的对象。这可以通过以下方式实现:

“`

const params = {

Bucket: ‘[YOUR_BUCKET_NAME]’,

Key: ‘[YOUR_OBJECT_KEY]’,

};

const object = await s3Client.getObject(params);

“`

接下来,我们需要为生成签名URL使用的参数设置过期时间和请求限制,以确保URL不会被滥用。可以像这样完成:

“`

const signedUrlExpireSeconds = 60 * 5; // 5 minutes

const url = await s3Client.getSignedUrl(‘getObject’, {

Bucket: params.Bucket,

Key: params.Key,

Expires: signedUrlExpireSeconds,

});

console.log(‘Signed URL:’, url);

“`

现在,我们已经成功创建了签名URL。如果您将此URL提供给用户,他们仅在指定时间内(在我们的情况下为5分钟)可以访问对象。此外,我们还能够使用SDK生成签名URL以上传对象。只需将“getObject”更改为“putObject”即可。

总之,AWS Node.js SDK V3提供了许多方便的工具,可帮助您在AWS上进行身份验证和访问控制。使用这些工具之一(如此示例中的签名URL生成器),您可以轻松地保护存储在S3上的对象,并设置对其访问的准确限制。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/