好的,我明白了 this和 this和 documentation告诉亚马逊是平面文件系统,要创建/获取/设置文件夹,必须使用 Delimiter='/' 和 Prefix。
但我没明白,我的意思是我不会写代码。所以我有一个存储桶和一个包含一些文件的文件夹,我想要这些文件的列表
所以我尝试了 bucket/folder 、 /bucket/folder/ 、 bucket/folder/ 所有这些都失败了。
如果我只尝试 bucket ,它可以正常工作
S3ListObjectsRequest *getListObjectsRequest= [[S3ListObjectsRequest alloc] initWithName"bucket"]; // tried also here bucket/folder , /bucket/folder/ , bucket/folder/
S3ListObjectsResponse *getListObjectsResponse = [self.s3 listObjects:getListObjectsRequest];
//test to see inside of the folder
NSArray *objectsinamazon = [self.s3 listObjectsInBucket"bucket"]; //as I said I tried bucket/folder , /bucket/folder/ , bucket/folder/ all od this fails.
NSLog(@"array is %@",objectsinamazon);
S3ListObjectsResult *listObjectsResults = getListObjectsResponse.listObjectsResult;
for (S3ObjectSummary *objectSummary in listObjectsResults.objectSummaries) {
NSLog(@"Bucket Contents %@:",[objectSummary key]);
//get last modified date of file by using meta data
S3GetObjectMetadataRequest *getMetadataRequest = [[S3GetObjectMetadataRequest alloc] initWithKey:[objectSummary key] withBucket"bucket"];
S3GetObjectMetadataResponse *getMetadataResponse = [self.s3 getObjectMetadata:getMetadataRequest];
}
}
我要求准确的语法(代码)将 bucket/folder 请求发送到 amazon s3
Best Answer-推荐答案 strong>
S3 不是扁平的,它只有两个层次:存储桶和对象名称(它是扁平的inside存储桶)。桶永远只是桶。您正在尝试添加到您的存储桶名称,这会产生无效的存储桶名称。
前缀和分隔符参数是properties on S3ListObjectsRequest .我的 Objective-C 生锈了,但我认为你可以设置这些属性:
getListObjectsRequest.prefix = @"my/prefix/";
getListObjectsRequest.delimiter = @"/";
在向 S3 提交请求之前。
关于ios - 如何在 Amazon S3 Bucket 的文件夹中获取文件列表,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/15276180/
|