gpt4 book ai didi

javascript - AWS S3 - 凭据在代码中公开

转载 作者:行者123 更新时间:2023-11-30 07:20:38 25 4
gpt4 key购买 nike

我是 AWS 的新手,遇到了一些安全问题。

我想允许我的用户上传个人资料图片并将其保存在 S3 中。我的代码如下所示:

import AWS_S3 from 'aws-sdk/clients/s3';
import config from '../../config';

const myS3Credentials = {
accessKeyId: config('AWSS3AccessKeyID'),
secretAcccessKey: config('AWSS3SecretAccessKey'),
};

console.log('myS3Credentials:', myS3Credentials);

const S3 = new AWS_S3({
credentials: myS3Credentials,
region: config('AWSS3Region'),
});

所有变量(如 AWSS3Region 和我的凭证)都在 .env 文件中设置。但在这里,我在代码中公开了它们。如何避免这种情况?或者我应该设置一些存储桶权限?

最佳答案

您可以使用在 S3 对象上公开的 aws sdk getSignedUrl 方法。这将允许您直接从客户端上传到您的存储桶,而不会暴露您的访问 token 。您可以通过将访问 token 保留在 .env 文件中并将该文件保留在您的存储库之外来确保访问 token 的安全。

创建签名 URL 需要在您的服务器上创建一个端点来返回签名 URL。从那里您将执行包含图像的放置请求。我用一个例子创建了一个要点。要点中有客户端和服务器代码。 https://gist.github.com/pizza-r0b/35be6dd3e992ef1ebb2159772cb768c0

关于javascript - AWS S3 - 凭据在代码中公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46368513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com