2017-05-31 5 views
1

は、AWSのドキュメントでは、この例があります:AWS S3 - アップロードしたディレクトリ全体にアクセスできるようになるまで待つ方法

http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#uploading-a-file

これは、オブジェクトがそれをアップロードした後にアクセス可能になるまで我々は待つことができる方法を示しています。 今すぐuploadDirectoryメソッドでアップロードした後、ディレクトリ全体がアクセス可能になるまでお待ちしています。ディレクトリ内の各ファイルをポーリングするのは良い考えではないと思います。これは多くの要求であり、おそらく遅いでしょう。

単一のポーリング要求でアクセス可能なファイルのマニフェスト全体を入れる方法はありますか?

+0

これは本当に問題ですか?既存のオブジェクトを上書きしない限り、アップロードするものはすぐに利用可能になるはずです。常にそうであるとは限りませんが、すべてのS3領域は、新しいオブジェクトに対する読み取り後の一貫性をサポートします。アップロードされたものは待つ必要はありません。 –

+0

アップロードファイルが利用できなかった後に、時には。彼らは後で登場した。そうです - それは問題です(少なくともそれは問題でした)。 – Xander

答えて

0

私が考えることができるのは、特定のバケットのディレクトリにある既存のオブジェクトをリストし、ローカルのファイルリスト(または少なくともファイルの数を確認する)でチェックすることです。

1

s3は、ディレクトリとその周りのメタデータを保持しません。

バケットレベルとオブジェクトレベルの2つのレベルのパーティションしか存在しないため、ディレクトリの存在を確認できません。

<bucket>/<directory>のすべてのオブジェクトに対して並列呼び出しを使用して、それらがアクセス可能かどうかをチェックできます。

関連する問題