teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

表現を修正

2021/12/26 21:28

投稿

jhashimoto
jhashimoto

スコア843

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  参考までに、確認した内容を載せておきます。
6
6
 
7
- 手動でアップロードしたオブジェクトはContent-Typeが`audio/mpeg`でしたが、
7
+ マネージメントコンソールからアップロードしたオブジェクトはContent-Typeが`audio/mpeg`でしたが、
8
8
 
9
9
  ```
10
10
  $ aws s3api head-object --bucket xxx --key manual.mp3

4

表現を修正

2021/12/26 21:28

投稿

jhashimoto
jhashimoto

スコア843

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  SDKでアップロードしたmp3の`Content-Type`が原因かと思われます。確認してみてください。こちらではCLIで確認してますが、マネージメントコンソールからでも確認できます。
4
4
 
5
- 参考までに、こちらで確認した内容を載せておきます。
5
+ 参考までに、確認した内容を載せておきます。
6
6
 
7
7
  手動でアップロードしたオブジェクトはContent-Typeが`audio/mpeg`でしたが、
8
8
 

3

Content-Typeの確認方法を補足

2021/12/26 11:21

投稿

jhashimoto
jhashimoto

スコア843

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > 手動で配置したものに関してはブラウザで再生可能で、phpでアップしたものがダウンロードされてしまいます。
2
2
 
3
- SDKでアップロードしたmp3の`Content-Type`が原因かと思われます。確認してみてください。
3
+ SDKでアップロードしたmp3の`Content-Type`が原因かと思われます。確認してみてください。こちらではCLIで確認してますが、マネージメントコンソールからでも確認できます。
4
4
 
5
5
  参考までに、こちらで確認した内容を載せておきます。
6
6
 

2

改変後のコードを追加

2021/12/26 11:20

投稿

jhashimoto
jhashimoto

スコア843

answer CHANGED
@@ -46,4 +46,19 @@
46
46
  }
47
47
  ```
48
48
 
49
- 使用するメソッドを`AmazonS3Client.UploadPartAsync`ではなく、`AmazonS3Client.PutObjectAsync`に変更したところ、ContentTypeが`audio/mpeg`でアップロードされ、ブラウザ内で音声が再生されるようになりました。
49
+ 使用するメソッドを`AmazonS3Client.UploadPartAsync`ではなく、`AmazonS3Client.PutObjectAsync`に変更したところ、ContentTypeが`audio/mpeg`でアップロードされ、ブラウザ内で音声が再生されるようになりました。
50
+
51
+ 改変後のコードです。
52
+
53
+ ```csharp
54
+ using (var s3Client = new AmazonS3Client(awsCredentials, region)) {
55
+ var request = new PutObjectRequest();
56
+ request.FilePath = @"yyy.mp3";
57
+ request.BucketName = "xxx";
58
+ // ContentTypeは指定しなくてもOKだったが、明示的に指定もできる
59
+ request.ContentType = "audio/mp3";
60
+ request.Key = "yyy.mp3";
61
+ var response = await s3Client.PutObjectAsync(request);
62
+ response.Dump();
63
+ }
64
+ ```

1

引用を追加

2021/12/26 10:50

投稿

jhashimoto
jhashimoto

スコア843

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