29

私はAWS Java SDKに精通しており、対応するJavadocも参照しようとしましたが、サブディレクトリ、つまりバケット内のディレクトリ オブジェクトを作成する方法と、そこにファイルをアップロードする方法がわかりませんでした。

すでに存在するバケット (公的許可がある) と、バケット内に作成する必要がある新しい (オブジェクト) ディレクトリ (つまり、bucketName/dirName/) を想定bucketNameして対応します。dirName

私は次のことを試しました:

AmazonS3Client s3 = new AmazonS3Client(
    new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY));
s3.createBucket(bucketName + "/" + dirName); //throws exception

2行目で例外をスローします。

サブディレクトリを作成し、そこにファイルをアップロードする短いスニペットは、非常に高く評価されます。

4

6 に答える 6

51

S3には「サブディレクトリ」はありません。バケットがあり、バケット内にキーがあります。

プレフィックス検索を使用して、従来のディレクトリをエミュレートできます。たとえば、次のキーをバケットに保存できます。

foo/bar1
foo/bar2
foo/bar3
blah/baz1
blah/baz2

次に、のプレフィックス検索をfoo/実行すると、次のようになります。

foo/bar1
foo/bar2
foo/bar3

詳細については、を参照AmazonS3.listObjectsしてください。


更新:既存のバケットがあるとすると、そのバケットの下のキーには:が含まれます/

s3.putObject("someBucket", "foo/bar1", file1);
s3.putObject("someBucket", "foo/bar2", file2);
...

foo/次に、 :で始まるすべてのキーを一覧表示できます。

ObjectListing listing = s3.listObjects("someBucket", "foo/");
于 2012-07-15T11:19:47.390 に答える