2

バンドルhttps://github.com/KnpLabs/Gaufretteを使用していますが、これが私の構成です。

knp_gaufrette: 
    adapters:
        someadapter:
            amazon_s3:
                amazon_s3_id: service.amazon.s3
                bucket_name: %amazon.s3.bucket_name%
                create: true
    filesystems:
        somefilesystem:
            adapter: someadapter

ファイルをアップロードするフォームがあります。私の問題は、ファイルが/ tmp / fileディレクトリにアップロードされてから、このファイルをアマゾンに移動しようとしたことです。

$filesystem->get('somefilesystem')->rename($tmpPath , $destinyPath);

例外はthrowです:

The file "/tmp/phpR4YbZN" was not found.

ファイルはまだamazonになく、私はそのファイルシステムで作業しているので、それは理にかなっています。しかし、ローカルファイルシステムからAmazonS3にファイルをアップロードする方法を知りたいです。

ありがとう!!!

4

1 に答える 1

4

そんなことしたいですか?:

$filesystemMap
   ->get('somefilesystem')
   ->write($destinyPath, file_get_contents($tmpPath))
;`

write メソッドには 3 番目の " overwrite " 引数 (デフォルトではfalse ) があることに注意してください。

ストリーム ラッパーを登録して、通常の php ファイル API/関数と同じように動作させることができます。詳細については、 https://github.com/KnpLabs/KnpGaufretteBundle#stream-wrapperを参照してください。

于 2013-01-29T22:59:07.583 に答える