你是否经常需要为存储在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/