20

PHP API を使用して、サブフォルダーとファイルを含むフォルダーを S3 バケット内の別のディレクトリにコピー/複製するにはどうすればよいですか?

$s3->copy_objectフォルダーのみをコピーしますが、内部のファイルとサブフォルダーはコピーしません。

$s3->list_objectsすべてのファイルとディレクトリを取得し、すべてのファイル/ディレクトリで実行するために使用する必要があります$s3->copy_objectか?

4

6 に答える 6

18

S3 はファイルシステムではなく、オブジェクト ストアです。フォルダは、具体的な意味で実際には存在しません。フォルダーは、共有プレフィックスと呼ぶことができるものです。別の言い方をすれば、path/to/oneandを作成すれば、 andpath/to/twoも存在しません。それらが表示される場合は、一部のコンポーネントがオブジェクトのリストを取得し、それらのキーを で分割し、そのリストを階層として表示することにしたためです。pathpath/to/

「フォルダーを別のフォルダーに複製」したい。これを S3 の用語に言い換えると、「同じプレフィックスを持つすべてのオブジェクトを別のプレフィックスを持つオブジェクトに複製する」必要があります。そのように言うと、メソッドが明確になります。1 つのプレフィックスを持つオブジェクトのリストを取得し、それぞれをコピーします。

于 2012-09-21T02:16:50.993 に答える
0

これを行う 1 つの方法は、リスト オブジェクトを使用して、各オブジェクトを 1 つずつ移動することです。もう 1 つの方法は、s3fuse を使用することです。これにより、s3 バケットがローカル ディレクトリとして作成され、「mv」などの簡単なコマンドを適用してファイルを移動できます。

于 2012-09-21T00:00:07.943 に答える