2016-07-19 6 views
-3

私はlaravelのファイルシステムのドキュメントを読んでいましたが、これは初心者にとっては不十分です。私は作曲経由s3パッケージをインストールしLaravel S3 integration

league/flysystem-aws-s3-v2 ~1.0

を今、私はローカルにファイルをアップロードしています次のコードを、持っている、

は、どのように私は私の次のコードでS3にファイルをアップロードすることができます。

public function setPhoto($file, $saveDB = true) 
    { 
     $stream = Image::make($file->getRealPath()) 
        ->stream('jpg', 80); 
     $stream = $stream->detach(); 
     $photoID = $this->id . '-medium-' . time() . '.jpg'; 
     $photoPath = 'photos/packages/' . $photoID; 
     DataIO::deleteFile($photoPath); 
     $this->photo_url = DataIO::updateStream($photoPath, $stream); 
     $this->photo_path = $photoID; 
     if($saveDB) { 
      $this->save(); 
     } 
    } 

私はs3、秘密鍵などの資格情報を設定しました。 おかげ

+2

で正しくs3設定を設定しているええと、あなたが 'rackspace'アダプタではなく' s3'を使用している表示されることを確認してください? – cmorrissey

+0

@cmorrisseyご迷惑をおかけして申し訳ありませんが、私は質問を更新しました。元はs3をインストールしました。質問はlaravelのドキュメントからコピーしました。質問に答えてください。ありがとう – Gammer

答えて

1

ドキュメントにHere

あなたがInterventionライブラリを使用していることを行うための指示がありますか?あなたはこのようにそれを試すことができます:

public function setPhoto($file, $saveDB = true) 
{ 
    $stream = Image::make($file->getRealPath())->stream('jpg', 80); 
    $stream = $stream->detach(); 
    $photoID = $this->id . '-medium-' . time() . '.jpg'; 
    $photoPath = 'photos/packages/' . $photoID; 
    Storage::disk('s3')->put("$photoPath", $stream->__toString(), 'public'); 

    DataIO::deleteFile($photoPath); 
    $this->photo_url = DataIO::updateStream($photoPath, $stream); 
    $this->photo_path = $photoID; 

    if($saveDB) { 
     $this->save(); 
    } 
} 

しかし、あなたは config/filesystem.php