0

s3fs を使用して、Amazon s3 ドライブをファイル システムにマウントしています。PHP の rename() 関数を使用してローカル ファイルをマウントされたドライブに移動しても、何も起こりません。rename() はこれに使用しても問題ありませんか?

$tempfile = $_SERVER['DOCUMENT_ROOT'].'/temp.png';
rename($tempfile,'/mnt/test.png');

上記のコードは私にとってはうまくいきません。ファイルが表示されるので、ドライブはマウントされているように見えます。

これはパーミッションの問題であることが判明しました。s3fs の「allow_other」オプションで修正しましたが、rename() の使用中に次の php エラーが発生しました。

failed to open stream: Input/output error 
4

3 に答える 3

3

一般に、ファイルシステム全体でファイルの名前を変更することはできません。ファイルをコピーしてから、元のファイルを削除する必要があります。(mv状況を自動的に検出し、全体のコピー/削除を行うため、問題は発生しません。)

于 2011-07-05T20:08:56.927 に答える
0

同様の問題が発生しましたが、Javaを使用していました。s3fsはファイルシステムをエミュレートするため、一方のfsからもう一方のfsにファイルをコピーすることはできません。

ファイルのコピーを2つ作成する必要がありました。1つはローカルfsに直接接続し、もう1つはエミュレートされたドライブに接続します。

于 2011-07-05T20:05:34.027 に答える
0

ここでこの宝石を見つけました-マウントされたS3バケットにファイルをアップロードしようとしたときの「入出力エラー」を解決しました:

最近、r188 の新規インストールで悪名高い「入出力エラー」に遭遇しました。S3 バケットは問題なく、他のすべては正常でしたが、まだ機能していませんでした。

私の問題がsecretAccessKey の一部である" + " 文字に関係していることを発見するのにかなりの時間がかかりました。

新しいアクセス キーを作成し、その情報を/etc/passwd-s3fsファイルに代入すると、すべてが機能し始めました。

于 2014-03-06T14:34:32.660 に答える