docsによると、コンテンツタイプはオプションで、は、ファイル拡張子に基づいて正しいMIMEタイプを判別しようとします。しかし、それはアプリケーション/ octet-streamのAWS SDK for PHPを使用してアップロードされたAmazon S3ファイルは、常に "application/octet-stream"ですか?
にMIMEタイプと、常にデフォルト値を推測するように見えたことはありませんここに私のコードは次のとおりです。
$s3 = new AmazonS3();
$opt = array( 'fileUpload' => $_FILES['file']['tmp_name'],
'storage' => Amazons3::STORAGE_REDUCED);
$r = $s3->create_object('mybucket', $_FILES['file']['name'], $opt);
は、ここに私のAWSコンソールのスクリーンショットです:
ContentTypeオプションを設定せずに実際に適切なコンテンツタイプを自動的に設定するにはどうすればよいですか、それとも手動で設定する必要がありますか?
追加情報:コンソールからファイルをダウンロードしてから(元々はSDK経由でアップロードした)、コンソールを使用して再度アップロードすると、適切なContent-Typeが設定されます(例:アプリケーションの代わりにGIFファイルの場合はimage/gif/octet-stream)
はい私はいつもcontentTypeを設定することができますが、ドキュメントには自動的に行われると書かれています: * fileUploadを介してファイルシステムのパスとしてアップロードされているファイルは、正しいMIMEタイプファイル拡張子に* しかし、それはおそらくバグがあるので起こっていません。 – IMB
'ContentType'と大文字の' C'です。さもなければ、それは私にとってはうまくいかない。 –
上記の答えは私が新しいSDKに移るまで私のために働いていました。私はもうそれを働かせることはできません:http://stackoverflow.com/questions/21892352/specify-content-type-in-aws-phps-upload-function –