OStack程序员社区-中国程序员成长平台

标题: ios - 如何在 Amazon S3 Bucket 的文件夹中获取文件列表 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 01:26
标题: ios - 如何在 Amazon S3 Bucket 的文件夹中获取文件列表

好的,我明白了 thisthisdocumentation告诉亚马逊是平面文件系统,要创建/获取/设置文件夹,必须使用 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-推荐答案


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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4