s3に音声ファイルのsample.mp3をアップロードしたいのですが、何か方法はあるのでしょうか?
実現可能かどうか知りたいです(可能であればやり方も)。
よろしくお願い致します。
[追記]
アップロード後、音声ファイルのURLを取得しアクセスするとそのままダウンロードされます。
以下のようにURLにアクセスしたらブラウザで再生されるようにしたいです。
ちなみにダウンロードされたファイルはローカルで再生することは出来ました。
アップロードする際はfile_get_contents()で取得したものをbodyに設定してアップロードしています。
よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
手動で配置したものに関してはブラウザで再生可能で、phpでアップしたものがダウンロードされてしまいます。
SDKでアップロードしたmp3のContent-Type
が原因かと思われます。確認してみてください。こちらではCLIで確認してますが、マネージメントコンソールからでも確認できます。
参考までに、確認した内容を載せておきます。
マネージメントコンソールからアップロードしたオブジェクトはContent-Typeがaudio/mpeg
でしたが、
$ aws s3api head-object --bucket xxx --key manual.mp3 { "AcceptRanges": "bytes", "LastModified": "2021-12-26T10:17:04+00:00", "ContentLength": 2133263, "ETag": "\"22fbb0c4eb5157d9fe3aac8caaa0cf6f\"", "ContentType": "audio/mpeg", "Metadata": {} }
SDKでアップロードした方は、text/plain
になっていました。
bash
1$ aws s3api head-object --bucket xxx --key sdk.mp3 2{ 3 "AcceptRanges": "bytes", 4 "LastModified": "2021-12-26T10:20:33+00:00", 5 "ContentLength": 2133263, 6 "ETag": "\"22fbb0c4eb5157d9fe3aac8caaa0cf6f\"", 7 "ContentType": "text/plain", 8 "Metadata": {} 9}
アップロードに使ったコードです(PHPは不慣れなので、AWS SDK for .NETを使っています)。
csharp
1using (var s3Client = new AmazonS3Client(awsCredentials, region)) { 2 var request = new UploadPartRequest(); 3 request.FilePath = @"yyy.mp3"; 4 request.BucketName = "xxx"; 5 request.Key = "yyy.mp3"; 6 var response = await s3Client.UploadPartAsync(request); 7 response.Dump(); 8}
使用するメソッドをAmazonS3Client.UploadPartAsync
ではなく、AmazonS3Client.PutObjectAsync
に変更したところ、ContentTypeがaudio/mpeg
でアップロードされ、ブラウザ内で音声が再生されるようになりました。
改変後のコードです。
csharp
1using (var s3Client = new AmazonS3Client(awsCredentials, region)) { 2 var request = new PutObjectRequest(); 3 request.FilePath = @"yyy.mp3"; 4 request.BucketName = "xxx"; 5 // ContentTypeは指定しなくてもOKだったが、明示的に指定もできる 6 request.ContentType = "audio/mp3"; 7 request.Key = "yyy.mp3"; 8 var response = await s3Client.PutObjectAsync(request); 9 response.Dump(); 10}
投稿2021/12/26 10:44
編集2021/12/26 21:28総合スコア838
0
投稿2021/12/26 08:29
編集2021/12/26 21:28総合スコア838
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/26 09:59
0
S3はオブジェクトストレージなので、どんなファイル形式であってもアップロードできます。もちろんmp3でもOKです。
検索すればたくさん情報があるので、試してみてうまくいかなかったら、また質問してください。
投稿2021/12/26 05:31
総合スコア838
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/26 06:30
2021/12/26 08:30
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/26 12:01