web-dev-qa-db-ja.com

いくつかの短い方法で、すべてのファイルとフォルダをPHPのS3バケットのあるフォルダから別のフォルダに移動するにはどうすればよいですか?

PHPのS3バケットの1つのフォルダーまたは別のフォルダーからすべてのファイルとフォルダーを移動する必要があります。私は同じことをする方法を知っています-1)ソースフォルダーからすべてのオブジェクトリストを取得2)すべてのオブジェクトを宛先フォルダーにコピー3)ソースフォルダーからすべてのオブジェクトを削除

同じことをする他の短い方法はありますか?もしそうなら、私と共有してください、それはいただければ幸いです、事前に感謝します

10
Neeraj Rathod

同じことをする他の短い方法はありますか

これを行う簡単な方法はありません。

ここに理由があります:

フォルダの概念は、コンソールに固有です。 Amazon S3はバケットとオブジェクトを使用しますが、サービスはフォルダーをネイティブにサポートしておらず、フォルダーを操作するためのAPIも提供していません。

ただし、データの整理に役立つように、Amazon S3コンソールはフォルダーの概念をサポートしています。 [...]

重要

Amazon S3では、バケットを作成してオブジェクトを保存します。このサービスは、一般的なファイルシステムで見られる階層をサポートしていません。

コンソールは、オブジェクトキー名を使用してフォルダー階層を派生させます。キー名に「/」文字を使用して階層を推測します

http://docs.aws.Amazon.com/AmazonS3/latest/UG/about-using-console.html

S3では、ファイルを別の「フォルダ」に「移動」することは実際にはできません。個々のオブジェクトのコピーを作成し、各オブジェクトに新しい「階層」の新しいキー名を付け、元のオブジェクトを削除することによってのみ、エミュレートできます。 S3は、個々のオブジェクトの名前変更もサポートしていません。名前を変更するには、新しい名前でコピーを作成してから、元の名前を削除します。コンソールは、これらの操作をサポートしているように見えますが、実際には上記のように、それらをエミュレートするだけです。これは、S3の設計の意図的な部分です。

16