2

OK、これこれと、Amazon がフラット ファイル システムであり、フォルダーを作成/取得/設定するには、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/folderAmazon s3にリクエストを送信するために正確な構文(コード)を求めています

4

1 に答える 1

4

S3 はフラットではなく、バケットとオブジェクト名の 2 つのレベルしかありません (バケットはフラットです)。バケツはいつもただのバケツです。バケット名に追加しようとしていますが、無効なバケット名が生成されます。

prefix および delimiter パラメータはS3ListObjectsRequest のプロパティです。私のObjective-Cは錆びていますが、これらのプロパティを次のように設定できると思います:

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

S3 にリクエストを送信する前に。

于 2013-03-07T16:34:10.577 に答える