【问题标题】:how to get file list inside of a folder in Amazon S3 Bucket如何在 Amazon S3 Bucket 的文件夹中获取文件列表
【发布时间】:2013-03-08 02:37:55
【问题描述】:

好的,我看到 thisthisdocumentation 告诉亚马逊是平面文件系统,并且要创建/获取/设置文件夹,必须使用 Delimiter='/' 和前缀。

但我没明白,我的意思是我不会写代码。所以我有一个存储桶和一个包含一些文件的文件夹,我想要这些文件的列表

所以我尝试了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 请求发送到亚马逊 s3

【问题讨论】:

  • 嗨@MordFustang 这里是my answer 这个问题,希望对您有所帮助。

标签: ios objective-c amazon-s3 directory


【解决方案1】:

S3 不是扁平的,它只有两个层次:存储桶和对象名称(它是扁平的 inside 存储桶)。桶永远只是桶。您正在尝试添加到您的存储桶名称,这会产生无效的存储桶名称。

前缀和分隔符参数为properties on S3ListObjectsRequest。我的 Objective-C 生锈了,但我认为你可以设置这些属性:

getListObjectsRequest.prefix = @"my/prefix/";
getListObjectsRequest.delimiter = @"/";

在向 S3 提交请求之前。

【讨论】:

    猜你喜欢
    • 2016-02-06
    • 1970-01-01
    • 2019-05-26
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2012-05-23
    • 2011-01-15
    相关资源
    最近更新 更多