eu-west-1
地域のAWSにlatheesan-public-bucket
というパブリックS3バケットを(たとえば)持っています。laravelのpublic AWS S3バケットにアクセスする方法
私は(例えば)ブラウザに次のURLを参照してくださいした場合:
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>latheesan-public-bucket</Name>
<Prefix />
<Marker />
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>test.json</Key>
<LastModified>2017-07-11T16:39:50.000Z</LastModified>
<ETag>"056f32ee5cf49404607e368bd8d3f2af"</ETag>
<Size>17658</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
:
https://latheesan-public-bucket.s3-eu-west-1.amazonaws.com/
私はバケツ内の1つのファイルを持っていることを示す次のXMLを取得
https://latheesan-public-bucket.s3-eu-west-1.amazonaws.com/test.jsonにアクセスすると、私のパブリックバケットからファイルをダウンロードできます。
私のLaravelアプリケーションで同じことを達成するために、その後、私の.env
私が追加した次の行に
:league/flysystem-aws-s3-v3
AWS_REGION=eu-west-1
AWS_BUCKET=latheesan-public-bucket
最後に、私はその後、パブリックS3バケットにアクセスするためにlaravelファイルシステムを使用しようとした私が最初に作曲を経由して、このパッケージを追加しましたこのようなファイル:
$json = Storage::disk('s3')->get('test.json');
私がこれをしたとき、
Illuminate \ Contracts \ Filesystem \ FileNotFoundException
test.json
だから私の質問:
はAWS_KEY=123
AWS_SECRET=123
AWS_REGION=eu-west-1
AWS_BUCKET=latheesan-public-bucket
は今、私はこのエラーを取得する:
Error retrieving credentials from the instance profile metadata server. (cURL error 28: Connection timed out after 1000 milliseconds (see http://curl.haxx.se/libcurl/c/libcurl-errors.html))
だから、私はいくつかの偽の資格情報を使用して.env
私の更新:私は、次のエラーを得ましたそうです。まず私はここで間違っていますか?実際に有効なS3キー/シークレットを提供せずに、laravelのパブリックs3バケットにアクセスする手段はありませんか?もし私がそれらを知らないならば?私は公共S3バケツへのURLしか持っていません。
P.S. latheesan-public-bucket
は存在しません(私の問題を説明するダミーのバケツ名でした。私は実際のパブリックバケットを持っていますが、上記のようにブラウザでうまく動作します)。
私は他の人たちが持っていた同様の問題について読んでいましたが、これはおそらく問題だったと思いました。私は 'file_get_contents()'を使ってパブリックファイルをリスト表示/取得するためのヘルパーファサードを書くつもりだと思います。 – Latheesan