回答編集履歴

5

表現を修正

2021/12/26 21:28

投稿

jhashimoto
jhashimoto

スコア843

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- 手動でアップロードしたオブジェクトはContent-Typeが`audio/mpeg`でしたが、
13
+ マネージメントコンソールからアップロードしたオブジェクトはContent-Typeが`audio/mpeg`でしたが、
14
14
 
15
15
 
16
16
 

4

表現を修正

2021/12/26 21:28

投稿

jhashimoto
jhashimoto

スコア843

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 参考までに、こちらで確認した内容を載せておきます。
9
+ 参考までに、確認した内容を載せておきます。
10
10
 
11
11
 
12
12
 

3

Content-Typeの確認方法を補足

2021/12/26 11:21

投稿

jhashimoto
jhashimoto

スコア843

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- SDKでアップロードしたmp3の`Content-Type`が原因かと思われます。確認してみてください。
5
+ SDKでアップロードしたmp3の`Content-Type`が原因かと思われます。確認してみてください。こちらではCLIで確認してますが、マネージメントコンソールからでも確認できます。
6
6
 
7
7
 
8
8
 

2

改変後のコードを追加

2021/12/26 11:20

投稿

jhashimoto
jhashimoto

スコア843

test CHANGED
@@ -95,3 +95,33 @@
95
95
 
96
96
 
97
97
  使用するメソッドを`AmazonS3Client.UploadPartAsync`ではなく、`AmazonS3Client.PutObjectAsync`に変更したところ、ContentTypeが`audio/mpeg`でアップロードされ、ブラウザ内で音声が再生されるようになりました。
98
+
99
+
100
+
101
+ 改変後のコードです。
102
+
103
+
104
+
105
+ ```csharp
106
+
107
+ using (var s3Client = new AmazonS3Client(awsCredentials, region)) {
108
+
109
+ var request = new PutObjectRequest();
110
+
111
+ request.FilePath = @"yyy.mp3";
112
+
113
+ request.BucketName = "xxx";
114
+
115
+ // ContentTypeは指定しなくてもOKだったが、明示的に指定もできる
116
+
117
+ request.ContentType = "audio/mp3";
118
+
119
+ request.Key = "yyy.mp3";
120
+
121
+ var response = await s3Client.PutObjectAsync(request);
122
+
123
+ response.Dump();
124
+
125
+ }
126
+
127
+ ```

1

引用を追加

2021/12/26 10:50

投稿

jhashimoto
jhashimoto

スコア843

test CHANGED
@@ -1,3 +1,7 @@
1
+ > 手動で配置したものに関してはブラウザで再生可能で、phpでアップしたものがダウンロードされてしまいます。
2
+
3
+
4
+
1
5
  SDKでアップロードしたmp3の`Content-Type`が原因かと思われます。確認してみてください。
2
6
 
3
7