我正在使用 AWS.Net 上传用户内容(图像)并将它们显示在我的网站上。这是我的代码当前用于上传的样子:
using (client = Amazon.AWSClientFactory.CreateAmazonS3Client())
{
var putObjectRequest = new PutObjectRequest
{
BucketName = bucketName,
InputStream = fileStream,
Key = fileName,
CannedACL = S3CannedACL.PublicRead,
//MD5Digest = md5Base64,
//GenerateMD5Digest = true,
Timeout = 3600000 //1 Hour
};
S3Response response = client.PutObject(putObjectRequest);
response.Dispose();
}
存储这些文件路径的最佳方式是什么?有没有办法从响应中获取指向我的文件的链接?
目前我的网络配置中只有一个 URL,如 https://s3.amazonaws.com/<MyBucketName>/
然后当我需要显示图像时,我获取该字符串并使用我存储在代表上传文件的数据库中的对象中的键。
有更好的方法吗?
它附带的所有示例都没有真正解决这种用法。而且文档不在线,我不知道如何在安装 SDK 后获取它,尽管遵循了 Amazon 上的说明。
最佳答案
您在 web.config 中存储包括存储桶名称在内的路径的方法与我所做的相同,效果很好。然后,我将相对路径存储在各种数据库表中。
这种方法的好处在于,它可以更轻松地迁移到不同的存储机制或 CDN,例如 CloudFront。我认为没有比这种方法更好的方法了,因为 S3 文件驻留在不同的域或子域(如果您进行 CNAME 映射),因此您的 .NET 运行时不会在同一域或子域下运行。
关于c# - 在 .NET 中使用 S3 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585477/