質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

1回答

3768閲覧

Storage::diskのファイル取得がうまくいかない。Storage::disk('AWSのs3')->exists($filename) の結果が空白で返ってくる

dvyd32k

総合スコア14

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2021/04/16 09:15

編集2022/01/12 10:55

xampp(win10/php7.x/mysql5.x)でlaravel開発を行っています。

composerで下記をインストールし

Amazon S3: league/flysystem-aws-s3-v3 ~1.0

"config/filesystems.php"で"s3"を設定し、
".env"でAWSのアクセスキーを設定しています。

下記を実行すると

$result = Storage::disk('s3')->exists($file_name);

例外エラーも発生せず、空白が返って来ます。
trueが返ってくるようにするには、何か設定不足なのでしょうか?

解決方法をご存知でしたら、お知恵をお貸し頂けますと幸いです。
宜しくお願い致します。

※下記追記情報です。
■Laravelバージョン

Laravel 6.x

■config/filesystems.php ファイルのs3関連の設定部分

's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'root' => '/xxxx/image/xxx/', 'use_path_style_endpoint' => env('AWS_PATH_STYLE_ENDPOINT', false), 'endpoint' => env('AWS_S3_ENDPOINT', null), ],

■.envファイルのAWS_XXXの部分

AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX AWS_DEFAULT_REGION=xx-xx-1 AWS_BUCKET=xxx.xxx.xxx.com

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lulucom

2021/04/17 08:05

existsメソッドの戻り値だけがおかしくて、S3にアクセスする他のコードは正常に動いているという状況でしょうか?
dvyd32k

2021/04/18 04:16 編集

ご回答ありがとうございます。 上記のxampp環境では他のコードも同じような状況です。 エラーメッセージでも返ってくればいいのですが、例外エラーも無い状態です。
Lulucom

2021/04/18 05:37 編集

そのXAMPP環境からそのS3にアクセスするコードはどれも同じ状況だけど、 別の環境からそのS3にアクセスすると正常に動いているという状況でしょうか? あと、config('filesystems.disks.s3') を表示させると設定値を確認できますが、.envファイルで設定した値が反映されていますか?
dvyd32k

2021/04/19 09:44 編集

他の環境は正常に動作します。 config('filesystems.disks.s3') では、.envファイルの設定値が表示され、下記はnullやfalseとなっています。 ****************** 'url' => NULL, 'use_path_style_endpoint' => false, 'endpoint' => NULL, ******************
Lulucom

2021/04/19 11:06

storage/logs/laravel.log にエラーや警告等は出ていないでしょうか。
dvyd32k

2021/04/20 01:29

laravel.logには何も出ていないです。
Lulucom

2021/04/20 03:05 編集

composer status の結果は「No local changes」と表示されますか? ダメ元で league/flysystem-aws-s3-v3 をインストールし直すと改善したりしないでしょうか。
dvyd32k

2021/04/21 00:42

composer status は、「No local changes」と表示されます。
Lulucom

2021/04/21 03:23 編集

以下も質問本文へ掲載していただくのは難しいですか? - Laravelのバージョン - config/filesystems.php ファイルのs3関連の設定部分 - .envファイルのAWS_XXXの部分 (公開するとまずい環境変数の値は伏せていただくようお願いします)
dvyd32k

2021/04/27 11:59

設定情報を追記致しました。 ※備考 .envには"AWS_URL"設定していません。
Lulucom

2021/04/27 13:08 編集

追記ありがとうございます。大体同じ条件で試してみたのですが、相変わらず現象は再現できていません。難しいですね・・・ > 例外エラーも発生せず、空白が返って来ます。 これは$resultの中身を表示させたりして確認したということですよね。 また、true/falseの真偽値ではなく ""(空文字列)が入っている、という意味なのですよね? 見たことない現象です・・・
guest

回答1

0

AWSのs3ストレージだよねぇ。
セキュリティグループの設定で遮断していたりしないですかね。
公開用に何らかの設定が足りていないような気がします。

投稿2021/04/16 16:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問