Object接口 > 资源元信息修改 | ||||||||||||||||||||||||||||||||
修改文件的 MIME 类型信息。 请求报文请求地址:
POST /chgm/<EncodedEntryURI>/mime/<EncodedMimeType>/x-qn-meta-<meta_key>/<EncodedMetaValue>/cond/<Encodedcond> HTTP/1.1 Host: rs.qiniu.com Content-Type: application/x-www-form-urlencoded Authorization: QBox <AccessToken> EncodedMimeType编码前的明文要设置新的mimeType。meta_key可以自定义,它可以由字母、数字、下划线、减号组成,且长度小于等于50,单个文件 meta_key 和 metavalue 总和大小不能超过 1024 字节,可以同时修改多个 meta 字段,metavalue 规则和 mimeType 相同。cond当前支持设置hash、mime、fsize、putTime条件,只有条件匹配才会执行修改操作,Encodedcond中的cond支持condKey1=condVal1&condKey2=condVal2格式。
管理凭证方式。
mimeType命名规则: 目前所有的mimetype包括如下字符集:a-z, A-Z, 0-9, ., +, /, -。 因为mimetype日后还会增加,为保证兼容将增加如下字符;,=,,,_和空格。 目前mimetype最大长度为79, 为保证兼容将来限制最大长度为200。 mimetype为空这里认为合法,因为如果为空后面会进一步检测并设置。 mimetype可以包括空格,例如:text/plain; charset=iso-8859-1。 禁止转义,如%0A表示\n,所以禁止出现%。 响应报文
HTTP/1.1 200 OKContent-Type: application/jsonCache-Control: no-store
如果请求成功,不返回任何内容。 如果请求失败,返回包含如下内容的JSON字符串 { "error": "<errMsg string>" }
示例
curl -i \ -o - \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Authorization: QBox bt500PzCG9tV0bccCOdnrmCHPXCPLieGSDEprB7M:4wG...' \ -X POST \ 'http://rs.qiniu.com/chgm/YnVja2V0OmtleQ==/x-qn-meta-meta_key/bWV0YV92YWx1ZQ==/cond/ZnNpemU9Ng=='
POST /chgm/YnVja2V0OmtleQ==/x-qn-meta-meta_key/bWV0YV92YWx1ZQ==/cond/ZnNpemU9Ng== HTTP/1.1 Host: rs.qiniu.com User-Agent: Go-http-client/1.1 Content-Length: 0 Authorization: QBox EmEtww5prO5pe8ts_mG.......1tXlEQ9hoG4:LuGCwpfK-rM= Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip 注意:要在Authorization头部的AccessToken前添加QBox和半角空格。
HTTP/1.1 200 OK Server: nginx Date: Fri, 23 Jun 2017 10:23:18 GMT Content-Type: application/json Content-Length: 0 Connection: keep-alive X-Log: rs35_17.sel;.........;RS:2;ZONEPROXY:4 X-Reqid: -nIAABnfaeIlucoU 示例function changeMime($accessKey,$secretKey,$bucket,$key,$mime) { $authObj = new Auth($accessKey, $secretKey); $http = new Http(); $resource = $authObj->entry($bucket, $key); $encode_mime = $authObj->base64_urlSafeEncode($mime); $url = "http://rs.qiniu.com/chgm/{$resource}/mime/{$encode_mime}"; $headers = $authObj->getHeaders($url, null, 'application/x-www-form-urlencoded'); // 创建一个新cURL资源 $curl = curl_init(); // 设置URL和相应的选项 curl_setopt($curl, CURLOPT_URL, $url); //CURLOPT_HEADER为true设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, strtoupper('POST')); curl_setopt($curl, CURLOPT_POST, true); $result = curl_exec($curl); curl_close($curl); return $result; } $accessKey = 'xxx'; $secretKey = 'xxx'; $bucket = '123_1';//存储空间名称 $key = 'Postman.exe';//文件名 $mime = 'image/jpeg';//待操作文件目标mimeType echo changeMime($accessKey,$secretKey,$bucket,$key,$mime); |