質問編集履歴

4

修正後のコードの追加

2020/09/09 07:13

投稿

suika11
suika11

スコア166

test CHANGED
File without changes
test CHANGED
@@ -161,3 +161,91 @@
161
161
 
162
162
 
163
163
  まだ解決はできておりません。引き続き調べます。
164
+
165
+
166
+
167
+ **追記**
168
+
169
+ 修正後のコード
170
+
171
+ ```php
172
+
173
+ <?php
174
+
175
+ require_once "./../vendor/autoload.php";
176
+
177
+
178
+
179
+ use Aws\S3\S3Client;
180
+
181
+ use Aws\Exception\AwsException;
182
+
183
+ use Aws\S3\Exception\S3Exception;
184
+
185
+
186
+
187
+ $bucket = getenv('S3_BUCKET_KEY');
188
+
189
+ $key = getenv('S3_ACCESS_KEY');
190
+
191
+ $secret = getenv('S3_SECRET_KEY');
192
+
193
+
194
+
195
+ $s3 = new S3Client([
196
+
197
+ 'version' => 'latest',
198
+
199
+ 'region' => getenv('S3_REGION'),
200
+
201
+ 'cledentials' => [
202
+
203
+ 'key' => $key,
204
+
205
+ 'secret' => $secret
206
+
207
+ ]
208
+
209
+ ]);
210
+
211
+
212
+
213
+ if (!is_uploaded_file($_FILES['img']['tmp_name'])) {
214
+
215
+ return;
216
+
217
+ }
218
+
219
+
220
+
221
+ $file = fopen($_FILES['img']['tmp_name'], 'rb');
222
+
223
+ try {
224
+
225
+ $result = $s3->putObject([
226
+
227
+ 'ACL' => 'public-read',
228
+
229
+ 'Bucket' => $bucket,
230
+
231
+ 'Key' => 'sample.jpg',
232
+
233
+ 'Body' => $file,
234
+
235
+ 'ContentType' => mime_content_type($_FILES['img']['tmp_name'])
236
+
237
+ ]);
238
+
239
+ } catch (S3Exception $e) {
240
+
241
+ var_dump($e->getMessage());
242
+
243
+ }
244
+
245
+
246
+
247
+ var_dump($result);
248
+
249
+
250
+
251
+ ```

3

追記

2020/09/09 07:13

投稿

suika11
suika11

スコア166

test CHANGED
File without changes
test CHANGED
@@ -147,3 +147,17 @@
147
147
  Visual Studio Code 1.48.2
148
148
 
149
149
  PHP 7.1.33
150
+
151
+
152
+
153
+ **追記**
154
+
155
+ 別途、環境変数設定した上でgetenv関数で値を指定し、再度読み込んだら下記のエラーが発生しました。
156
+
157
+
158
+
159
+ PHP Fatal error: Uncaught Aws\Exception\CredentialsException: Error retrieving credentials from the instance profile metadata service. (cURL error 28: Connection timed out after 1000 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)) in /app/vendor/aws/aws-sdk-php/src/Credentials/InstanceProfileProvider.php:240
160
+
161
+
162
+
163
+ まだ解決はできておりません。引き続き調べます。

2

タイトルの修正

2020/09/08 16:55

投稿

suika11
suika11

スコア166

test CHANGED
@@ -1 +1 @@
1
- AWSのS3に画像をアップロードしようとするとエラーが表示される。
1
+ herokuで公開しているアプリからAWSのS3に画像をアップロードしようとするとエラーが表示される。
test CHANGED
File without changes

1

試したことの修正

2020/09/07 13:24

投稿

suika11
suika11

スコア166

test CHANGED
File without changes
test CHANGED
@@ -136,7 +136,7 @@
136
136
 
137
137
  **試したこと**
138
138
 
139
- バケット名の確認
139
+ バケット名の確認→問題なし
140
140
 
141
141
 
142
142