はじめに
AWSのS3へ画像をアップロード途中に出会ったエラーがあったので記録として残します。
環境
macOS: "11.2.3 Big Sur"
php artisan -V
# > Laravel Framework 6.20.30
php -v
# > PHP 8.0.8
nginx -v
# > nginx version: nginx/1.12.2
mysql -h エンドポイント -u マスターユーザー名 -p データベース名
Enter password:
# > Server version: 8.0.25
git --version
# > git version 2.32.0
もくじ
1. S3パッケージのインストールでエラー
2. S3のアップロードでエラー
1. S3パッケージのインストールでエラー
パッケージをインストールしようとしたら以下のエラーが。
# composer require league/flysystem-aws-s3-v3
Your requirements could not be resolved to an installable set of packages.
Problem 1
- league/flysystem-aws-s3-v3[2.1.0, ..., 2.x-dev] require league/flysystem ^2.0.0 -> found league/flysystem[2.0.0-alpha.1, ..., 2.x-dev] but the package is fixed to 1.1.3 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- Root composer.json requires league/flysystem-aws-s3-v3 ^2.1 -> satisfiable by league/flysystem-aws-s3-v3[2.1.0, 2.x-dev].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
色々調べていると、バージョンの違いが原因でインストールできないらしい。
公式に記載されているコードでもう一度入力すると無事パッケージがインストールされました。
# composer require league/flysystem-aws-s3-v3 "^1.0"
#2. S3のアップロードでエラー
The PutObject operation requires non-empty parameter: Bucket
画像をアップロードしようとしたら以下のエラーが。
The PutObject operation requires non-empty parameter: Bucket
(訳) PutObject操作には、空でないパラメーターが必要です
解消
以下のサイトを参考に上記のエラーは無くなりました。
# php artisan config:clear
やはりキャッシュ削除は忘れがち。
一通りのキャッシュを削除する癖をつけないといけないですね。
# php artisan cache:clear
# php artisan route:clear
# php artisan view:clear
参考
実装にあたり以下のサイトを参考にしました。