1

s3fs を使用してバケットを正常にマウントしましたが、PHP ライブラリを使用して作成したオブジェクト (サブディレクトリ内のファイル) が表示されません。ルート レベルにファイルを追加すると、それがわかります。ルート レベルでファイルを作成すると、それがわかります。ディレクトリを作成すると、その中にアイテムを作成できますが、以前に作成したディレクトリとオブジェクトが表示されません。

以前に作成したアイテムを表示するにはどうすればよいですか? 私は本当に EBS を作成してマウントし、S3 からこれを取り出したいと思っています。このようにS3を取り付けると、それが簡単になると思っていました。

オブジェクトを S3 から EBS に移動しようとしているだけなので、s3sync も試しています。運がない。s3sync がディレクトリを作成しようとすると、奇妙なものが作成されました...

---x-wx--T 1 root root 272 Oct 21 15:25 /photos/0

./s3sync.rb:638:in `initialize': No such file or directory - /photos/0.s3syncTemp     (Errno::ENOENT)

ヘルプ!!!

助けてくれてありがとう。

トム

4

2 に答える 2

1

S3FSを使用する場合は、そのインターフェイスを使用してすべてのファイルトランザクションを実行する必要があると聞いています。PHPを使用してファイルをバケットに入れると、ファイルが正しく追加される場合がありますが、S3FSを使用して追加されていないため、マウントされたドライブに表示されない場合があります。

Webバックアップに使用するマウントされたS3FSシステムがあり、バックアップスクリプトでは作成されないが、他のプロセスから残されるこれらの冗長なフォルダーとファイルがすべてあります。これらのファイルはいずれも、Transmitまたは別のS3アクセスツールを使用して表示することはできません。バケットの実際の内容を表示できるのは、AmazonAWSコンソールのみです。

ACLに関しては、別の問題に触れたようです。

同様のプロセスを実行することをお勧めしますが、S3FSを使用してコマンドラインまたはs3Foxを介してファイルを転送し、同じ結果が得られるかどうかを確認します。

于 2012-03-19T02:55:24.100 に答える
1

これは、サブディレクトリに ACL が割り当てられていないためです。S3 で public-read permission/acl を使用してサブディレクトリ オブジェクトを作成することで問題を解決しました。

例えば$s3->putObjectString("", 'bucketName', 'directoryName/', S3::ACL_PUBLIC_READ);

于 2011-11-11T03:22:15.767 に答える