c# - 在 C# 中获取亚马逊 Web 服务未签名的 URL

标签 c# amazon-web-services amazon-s3 unsigned

我正在使用 amazon sdk for .net 我已经在我的存储桶文件夹中上传了一个文件,现在我想使用这段代码获取该文件的 url

 GetPreSignedUrlRequest request = new GetPreSignedUrlRequest();
        request.BucketName = "my-new-bucket2";
        request.Key = "Images/Tulips.jpg";
        request.Expires = DateTime.Now.AddHours(1);
        request.Protocol = Protocol.HTTP;
        string url = s3.GetPreSignedURL(request);

但这是返回带有 key 、到期日期和签名的 url 但事实上我想在没有它们的情况下获取 url,没有其他方法可以获取 url

**我尝试过的事情**

我搜索并发现我必须更改我的文件的权限

我在上传时更改了文件的权限

request.CannedACL = S3CannedACL.PublicRead;

但它仍然返回相同的 url http://my-new-bucket2.s3-us-west-2.amazonaws.com/Images/Tulips.jpg?AWSAccessKeyId=xxxxxxxxxxxx&Expires=1432715743&Signature=xxxxxxxxxxx%3D

它在我删除 keyid、expire 和签名时起作用 但是我如何在没有它的情况下获取 url ,或者我必须手动完成

最佳答案

这是设计使然。如果您知道存储桶名称和 key ,那么您就拥有了构建 URL 所需的一切。例如,这里的 bucketname 是 yourbucketname,key 是 this/is/your/key.jpg

https://yourbucketname.s3.amazonaws.com/this/is/your/key.jpg

希望对您有所帮助!

关于c# - 在 C# 中获取亚马逊 Web 服务未签名的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476455/

相关文章:

c# - 使用 System.Drawing.Printing 在 .NET Core 中打印 PDF

c# - 是否可以在 C# 中有一个名为 bool 的字段?

amazon-web-services - 使用 ECR 从 AWS 上运行的 Kubernetes 拉取镜像会从其他账户中的错误区域拉取镜像

python - 如何通过Boto获取IAM策略文档

post - s3 预签名 POST 中未强制执行内容类型

c# - ASP MVC 5 日期格式验证问题

c# - 使用 BuildEngine 传递 MsBuild 命令行参数

amazon-web-services - 从 API Gateway 调用所有 Lambda 函数的权限

Java 从 HDFS 传输到 S3

bash - 如何使用 aws cli 命令仅显示来自 s3 存储桶的目录