在c#中获取amazon web服务的未签名URL

Aht*_*haq 6 c# unsigned amazon-s3 amazon-web-services

我使用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);
Run Code Online (Sandbox Code Playgroud)

但这是带有密钥,exipration日期和签名的返回url但实际上我想获取没有它们的url,没有其他方法来获取url

**我尝试过的事情**

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

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

request.CannedACL = S3CannedACL.PublicRead;
Run Code Online (Sandbox Code Playgroud)

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

当我删除keyid,expire和签名但它如何获得它的url,或者我必须手动执行它

小智 1

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

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

希望有帮助!