human: 如何处理七牛云的对象存储直传文件

gpt: [对象存储](https://developer.qiniu.com/kodo) > API 文档 > [Object
接口](https://developer.qiniu.com/kodo/api/1274/rs) > 直传文件

#  直传文件

最近更新时间: 2024-04-09 14:41:24

# **描述**

本接口用于在一次 HTTP 会话中上传单一的一个文件。

  

# **请求**

### **请求语法**

请求报文的内容以`multipart/form-data`格式组织：

    
    
    POST / HTTP/1.1
    Host:           <UpHost>
    Content-Type:   multipart/form-data; boundary=<frontier>
    Content-Length: <multipartContentLength>
    
    --<frontier>
    Content-Disposition:       form-data; name="key"
    
    <resource_key>
    --<frontier>
    Content-Disposition:       form-data; name="x:<custom_name>"
    
    <custom_value>
    --<frontier>
    Content-Disposition:       form-data; name="token"
    
    <upload_token>
    --<frontier>
    Content-Disposition:       form-data; name="crc32"
    
    <crc32>
    --<frontier>
    Content-Disposition: form-data; name="x-qn-meta-<metaKey>"
    
    <metaValue>
    --<frontier>
    Content-Disposition:       form-data; name="accept"
    
    <acceptContentType>
    --<frontier>
    Content-Disposition:       form-data; name="file"; filename="<fileName>"
    Content-Type:              <contentType>
    Content-Transfer-Encoding: binary
    
    <fileBinaryData>
    --<frontier>--
    

  

### **请求头**

头部名称 | 必填 | 说明  
---|---|---  
Host | 是 | 上传域名。七牛对象存储支持的区域和对应区域上传域名列表见 [存储区域列表](https://developer.qiniu.com/kodo/1671/region-endpoint-fq)  
  
  

### **请求内容**

参数名称 | 必填 | 说明  
---|---|---  
resource_key | 否 | 资源名，必须是UTF-8编码。如果[上传凭证](https://developer.qiniu.com/kodo/manual/1208/upload-token)中 scope 指定为 <bucket>:<key>， 则该字段也必须指定，并且与上传凭证中的 key 一致，否则会报`403`错误。如果表单没有指定 key，可以使用上传策略[saveKey](https://developer.qiniu.com/kodo/manual/1206/put-policy#save-key)字段所指定魔法变量生成 Key，如果没有模板，则使用 Hash 值作为 Key。  
custom_name | 否 | [自定义变量](https://developer.qiniu.com/kodo/manual/1235/vars#xvar)的名字，不限个数。  
custom_value | 否 | [自定义变量](https://developer.qiniu.com/kodo/manual/1235/vars#xvar)的值。  
upload_token | 是 | [上传凭证](https://developer.qiniu.com/kodo/manual/1208/upload-token)，位于 token 消息中。  
crc32 | 否 | 上传内容的 CRC32 校验码。如果指定此值，则七牛服务器会使用此值进行内容检验。  
accept | 否 | 当 HTTP 请求指定 accept 头部时，七牛会返回 Content-Type 头部值。该值用于兼容低版本 IE 浏览器行为。低版本 IE 浏览器在表单上传时，返回 application/json 表示下载，返回 text/plain 才会显示返回内容。  
fileName | 是 | 原文件名。对于没有文件名的情况，建议填入随机生成的纯文本字符串。本参数的值将作为魔法变量[$(fname)](https://developer.qiniu.com/kodo/manual/1235/vars#magicvar-fname)的值使用。  
fileBinaryData | 是 | 上传文件的完整内容。文件大小不超过 1GB。  
x-qn-meta | 否 | 自定义元数据，可同时自定义多个元数据，总和大小不能超过 1024 字节。  
  
  

# **响应**

### **响应语法**

    
    
    HTTP/1.1 200 OK
    Content-Type: application/json
     {
     hash:"xx"
     key:"xx"
    }
    

  

### **响应头**

该请求操作的实现使用了所有操作的公共响应头。有关详细信息，请查阅[公共响应头](https://developer.qiniu.com/kodo/api/3924/common-
request-headers)。

### **响应内容**

名称 | 说明  
---|---  
hash | 目标资源的[hash值](https://developer.qiniu.com/kodo/manual/1231/appendix#qiniu-etag)，可用于 ETag 头部。  
  
类型：字符串  
key | 目标资源的最终名字，可由七牛云存储自动命名。  
  
类型：字符串  
  
### **响应状态码**

该操作的实现不会返回特殊错误。有关错误和错误代码列表的一般信息，请查阅[错误响应](https://developer.qiniu.com/kodo/api/3928/error-
responses)。

  

# **在线示例**

  * [JS表单上传（异步） __](https://kodo-utils.qiniu.com/upload-token?ref=developer.qiniu.com&s_path=%2Fkodo%2F1208%2Fupload-token)

以上内容是否对您有帮助？