2016-05-29 21 views
1

S3に保存されているファイルを自分のローカルのLaravelにダウンロードしようとしています。助けていただければ幸いです。Laravel S3からローカルにダウンロード

設定データが正しくセットアップされているため、問題なくアップロードできます。 "user-> id/media-> id.mp3"というパターンでS3に保存しています.-私がS3上にファイルをダンプするだけではなく、ディレクトリに保存しているということに注意してください。

ファイルをS3に正常にアップロードした後、私のDBの保存パスを「user-> id/media-> id.mp3」に更新します。長い公開URLではありません。

私が後でファイルをダウンロードしようとすると、S3でFileNotFoundExceptionが発生します。私はこれをやっている。

$audio = Storage::disk('s3')->get($media->location); 

奇妙なことは例外で、それがフェッチすることはできませんリソースを示しますが、私は、ブラウザで同じURLを置いたときに、それはまったく問題なくファイルを表示することです。なぜファイルシステムがファイルを取得できないのですか?

私は "取得"の前に "持っている"チェックをしようとしており、チェックは偽になります。

公開URLをデータベースに保存する必要がありますか?私はそれを試みたが、それは助けにはならなかった。私はとてもシンプルなものを見逃しているように感じ、それが私を狂ってしまいます!!

+0

あなたのURLは次のようなものかもしれません。https://s3.amazonaws.com/your_bucket/some_folder/some_other_folder/my.fileバケツの後のフルパスは、awsからファイルを取得する際に渡す必要があります –

答えて

1

後期の答えが、他の人のために重要な、

$s3_file = Storage::disk('s3')->get(request()->file); 
$s3 = Storage::disk('public'); 
$s3->put("./file_name.tif", $s3_file); 

$ s3_fileの応答は流れになります、あなたはLaravelを使用してファイルにそのストリームデータを保存することができ、ファイルの方法を置く、あなたはstorage/publicにこのストリームのファイルを検索しますディレクトリ。

関連する問題