2013-07-08 34 views
3

我想設置我在php中使用s3 api上傳的文件的內容類型元數據。我的代碼如下所示:在s3多部分上傳設置內容類型的元數據

$upload_model = $s3->createMultipartUpload(array("Bucket" => $bucket , "Key"=> $key, "ACL"=>$acl , "Metadata" => array('Content-Type' => $this -> get_file_type($file_path)))); 

假設我有「視頻/ WEBM」內容類型,我在我的S3瀏覽器中看到的結果是,「內容類型」設置爲「二進制/八位字節流」和s3爲我創建一個「x-amz-meta-content-type」,裏面有「video/wemb」值,這對我來說完全沒用。因爲瀏覽器只響應「Content-Type」標題來決定是下載文件還是在瀏覽器中顯示它們。

回答

4

我發現問題,這是一種誤解。內容類型元數據在createMultipartUpload函數中有自己的參數。所以這段代碼的工作只是罰款:

$s3->createMultipartUpload(array("Bucket" => $bucket , "Key"=> $key, "ACL"=>$acl , "ContentType" => $this -> get_file_type($file_path))); 

我不知道這一點,但似乎你提供的元數據的任何名稱S3添加X-AMZ-元前綴爲它表明它是一個用戶定義的元數據。

+0

是的,你在這裏的意見是正確的。如有疑問,請務必檢查[API文檔](http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.S3.S3Client.html#_createMultipartUpload)。 ContentType參數在此處列出。 –

相關問題