1

私は Amazon S3 サービスの初心者です。Amazon S3 データベースがあり、ディレクトリ (バケット) 構造は次のようになります。

-All bucket 
  -MyCompany
    -MyProduct 
      -Product_1
        - sub1_prod1
        - sub1_prod2
        ...
      -Product_2
        - sub2_prod1
        - sub2_prod2
        ...

上記のように、MyProductバケットの下にはいくつかの製品バケット (例: Product_1 ) があり、各製品バケットの下にはいくつかのサブ製品 (例: sub1_prod1) があります。各サブプロダクトには複数のファイルが含まれています。

Android クライアントに Java コードを実装して、バケット内のすべての製品をクエリしたいのですMyProductが、どうすればよいですか? Amazon Android SDKが提供するAmazonS3Clientクラスを使用しています。

PS :

AmazonS3Client資格情報を使用してオブジェクトを作成できます。

AmazonS3Client s3 = new AmazonS3Client(myCred);

Java コードでファイルを S3 バケットにアップロードする方法は知っていますが、S3 データベースにクエリを実行して Android クライアントで結果を取得する方法がわかりません。つまり、各 sub_product バケットの下にあるすべてのファイル名を取得します。

4

1 に答える 1

1

Amazon S3 データベースがあります

私見ですが、Amazon S3 はデータベースではありません。ファイルのディレクトリがデータベースである以上のことはありません。DynamoDB や RDS など、実際のデータベースである他の A​​mazon AWS サービスを検討することもできます。

これは、各 sub_product バケットの下にあるすべてのファイル名を取得することです

ドキュメントを読むと、何らかのフレーバーのlistObjects().

ブルート フォース アプローチは、バケット名だけを取るを使用するlistObjects()ことです。これにより、すべてのリストが得られます。それらを自分でツリー構造にソートする必要があります。

ブルートフォースの少ないアプローチは、バケット名とプレフィックスを取るまたはパラメータを取る を使用するlistObjects()ことです。ファイルシステム用語を使用すると、そのディレクトリ内のファイルとサブディレクトリがわかります。このようにして、作品をより簡単にダウンロードできます。ただし、これには多くの HTTP リクエストが必要になる場合があります。listObjects()ListObjectsRequest

于 2013-10-27T14:55:15.440 に答える