我正在尝试使用php中的s3 api为我上传的文件设置内容类型的元数据。我的代码如下所示:
$upload_model = $s3->createMultipartUpload(array("Bucket" => $bucket , "Key"=> $key, "ACL"=>$acl , "Metadata" => array('Content-Type' => $this -> get_file_type($file_path) ) ) );
假设我有“video / webm”内容类型,我在s3浏览器中看到的结果是“Content-Type”设置为“binary / octet-stream”并且s3创建了“x-amz-meta” -content-type“对我而言,其中包含”video / wemb“值,这对我来说完全没用。因为浏览器只响应“Content-Type”标题来决定是下载文件还是在浏览器中显示它们。
答案 0 :(得分:5)
我发现问题,这是一种误解。 Content-Type元数据在createMultipartUpload函数中有自己的参数。所以这段代码工作正常:
$s3->createMultipartUpload(array("Bucket" => $bucket , "Key"=> $key, "ACL"=>$acl , "ContentType" => $this -> get_file_type($file_path) ) );
我不知道这一点,但似乎您为元数据s3提供的任何名称都在其中添加了一个x-amz-meta前缀,以表明它是用户定义的元数据。