🙌

S3からEC2サーバーへのファイル取得でエラーが出る

2021/04/18に公開

S3サーバーからEC2サーバーへのファイル取得ですが、下記のようなコードで対応いたしました。

class Media extends Model
{
    public function getPreSignedUrl($minutes)
    {
        $url = \Storage::disk('s3')
            ->temporaryUrl(
                $this->file_name,
                Carbon::now()->addMinute($minutes));
        return $url;
    }
}

class MediaController extends Controller
{
    public function uploadSplit(Request $request, Media $media)
    {
		$input = $request->all();
		
		$content = Storage::disk('s3')->get( $media->getPreSignedUrl(10) );
		
		if( isset( $content ) )
		{
	        return [
	            'message' => 'ok',
	        ];
		}
		
        return [
            'message' => 'ng',
        ];
    }
}

「$content」を使用してバイナリ操作を行おうとしたのですが、途中から

League\\Flysystem\\FileNotFoundException(code: 0): File not found at path:

といったエラーが出るようになりました。
エラー文の前後にはS3サーバーのファイルダウンロードURLがついております。

こちら一時的なURLの取得ではいけないのでしょうか。
また、取得した「$content」をバイナリファイルとして扱うことは出来るのでしょうか。

初歩的な質問かと思いますがよろしくお願い致します。

Discussion