我正在尝试使用VS2010中的AWS .NET SDK访问Amazon S3文件属性,例如“Exists”,“Length”,“LastWriteTime”等。
我使用以下命令获取目录中的文件列表:
S3DirectoryInfo directory = new S3DirectoryInfo(client, bucket, key);
S3FileInfo[] fileList = directory.GetFiles();
fileList现在是一个S3FileInfo对象的数组。但是,当我查看对象时,所有文件属性都列出了异常,而不是属性。来自服务器的AmazonS3Exception,Forbidden 404例外。我可以使用目录列表执行相同的操作并获取目录的属性,但始终禁止文件属性。为了防止问题出现在directory.GetFiles()
方法中,我还尝试使用以下方法创建单个S3FileInfo:
S3FileInfo fileInfo = new S3FileInfo(client, bucket, key;
结果是一样的。我知道客户端,存储桶和密钥都很好,因为我将它们用于各种其他操作并成功,只是S3FileInfo存在问题。
我在Visual Studio 2010中运行MVC 2 Web应用程序,运行带有Windows 7 Professional的AWS .NET SDK版本2.3.18.0。
答案 0 :(得分:1)
我弄明白了这个问题。我进入了AWS IAM控制台,用户。我选择了我想要的用户,在权限下我选择了“附加用户策略”。我使用了管理员访问策略模板。这解决了我的问题。感谢Vor让我走上了查看我的政策和角色的道路。奇怪的是,我可以使用.NET SDK添加AWS用户,创建S3存储桶,密钥,上传/下载文件,设置加密等......我唯一不能做的就是访问文件属性。
非常奇怪,我的猜测是它是一个bug或者至少不是故意的。在没有管理员权限的情况下禁止查看文件属性似乎很奇怪,而我几乎可以做任何事情。