我正在开发亚马逊codeplex,用于在云服务器上存储文件,我正在使用S3的the (http://threesharp.codeplex.com)来实现这一点,我已经成功地将文件上传到服务器上,现在我必须下载它,为此,我必须使用https://s3.amazonaws.com/MyBucket/Filename等网址下载它
我可以下载上传的文件,但它显示为空白,如果我上传了一个文本文件,那么在下载后它没有显示任何内容,与图像和其他文件相同。我在亚马逊S3文档上读到,我将不得不使对象公共可读(http://docs.amazonwebservices.com/AmazonS3/latest/gsg/OpeningAnObject.html),我不知道如何实现这一点。如何实现下载功能?Threesharp项目是一个基于桌面的,我在基于web的应用程序上工作
发布于 2012-12-19 18:34:13
在文件上传过程中,设置正确的ACL:
例如:
AmazonS3 client = GetS3Client();
SetACLRequest request = new SetACLRequest();
request.BucketName = "my-new-bucket";
request.Key = "hello.txt";
request.CannedACL = S3CannedACL.PublicRead;
client.SetACL(request)
亚马逊S3为您提供了一套丰富的机制来管理对存储桶和对象的访问。
详细信息请查看以下内容:Amazon S3 Bucket Public Access Considerations
此外,您还可以下载用于亚马逊S3的资源管理器(例如CloudBerry Explorer for Amazon S3) &您可以将适当的权限分配给您的存储桶。
适用于亚马逊S3的CloudBerry资源管理器:数据访问功能:
通过设置访问控制列表,
还将应用于S3存储桶中的所有‘子对象’。
此外,您也可以使用亚马逊S3管理控制台执行相同的操作。
例如:
发布于 2012-12-19 18:31:28
您是否尝试过以下操作:
编辑:
你看过这里吗:How to set the permission on files at the time of Upload through Amazon s3 API
还有这里:
How to set a bucket's ACL on S3?
它可能会指引你朝着正确的方向前进
https://stackoverflow.com/questions/13950226
复制相似问题