Closed sugizakikun closed 2 months ago
とりあえずWebサーバー上に画像を保存できるようになった。 一方成長。
画像までのパスもstring型でDBに保存できるようになったぜ!
ProfileController.php
public function update(Request $request, UpdateProfile $updateProfile)
{
// ディレクトリ名を任意の名前で設定します
$dir = 'img';
$path = $request->file('image')->store('public/' . $dir);
$updateProfile->execute($path);
// ページを更新します
return redirect('/profile');
}
UpdateProfile.php
class UpdateProfile
{
public function execute(?string $path)
{
$user = Auth::user();
$user->profile_image_key = $path;
$user->save();
}
}
ただ画像が読み込めないので、下記の記事を参考にコマンドを打ち込む https://qiita.com/mako0104/items/69d25cb872868f3b210d
miki@naoki-osako-mac src % php artisan storage:link
INFO The [public/storage] link has been connected to [storage/app/public].
いや・・・アップロードした画像がS3に保存されて、保存されたやつを画面に読み込ませることが目標やから気にせんでいいか・・・
疎通確認
public function execute(?string $path)
{
$fileContents = Storage::get($path);
Storage::disk('s3')->put('test.png', $fileContents);
$path = Storage::disk('s3')->temporaryUrl('test.png', now()->addMinutes(5));
}
上記のようにServiceクラスを直したらS3に画像がアップロードされたぴょん
アクセス拒否されたんだよなぁ〜〜〜
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>YNP0GVC8M8JEGXE9</RequestId>
<HostId>EHWLcPYxctNX69gq3ivwSHucr/+pOKKtxvuI9EpDcWPI/H7fJ6nJiHZgB+iFEii9DdPdSQFHPz4=</HostId>
</Error>
にゃんこが表示された!!🐈
とりあえず画像アップローダーは普段は表示させず、モーダルが起動した時にだけ表示させる方式で。
結構GithubらしくなったのでいったんこのIsuueはCloseしまする。 パフォーマンス維持のためにも古い画像はS3から消すようにしました。
作業ブランチ
お世話になるであろう記事
基本実装
フロントエンド実装
バックエンド実装
何が幸せか