# 文件上传
#### 概述
华为物联网平台支持设备将运行日志，配置信息等文件上传至平台，便于用户进行日志分析、故障定位、设备数据备份等。当设备采用HTTPS方式将文件上传到OBS服务进行备份时，您可以在OBS服务管理已上传的设备文件。
#### 业务流程
图1文件上传流程图   
![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001684058009.png "点击放大")
1. 授权物联网平台访问OBS服务。
2. 配置OBS桶。
3\~4. 设备请求上传文件URL，平台下发文件上传URL，格式请参考[设备上报获取文件上传URL请求](https://support.huaweicloud.com/api-iothub/iot_06_v5_3033.html)。
5.调用OBS接口，使用平台下发的URL上传设备文件，URL有效期时间以下发的expire为准，单位为秒，默认是1个小时。
- 方法一：直接使用该URL，以Postman为例。 使用PUT方法调用URL，body选择binary，选择具体的文件上传，文件名与上报的文件名一样，这样在OBS才可以看到对应的文件。
  调用接口的header可以不带Content-Type或者Host。如果必须要带，请检查Content-Type是否为text/plain，以及Host是否为URL的域名，否则调用接口将返回403状态码SignatureDoesNotMatch错误。
  ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001223795206.png "点击放大")
  ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001223635230.png "点击放大")
  
- 方法二：集成OBS的SDK调用接口。 参考[使用URL进行授权访问](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0901.html)，使用put请求上传对象SDK来上传对象。
  
 
6\~7. 设备请求下载存储在OBS服务的文件，平台下发文件下载URL，格式请参考[平台下发文件上传临时URL](https://support.huaweicloud.com/api-iothub/iot_06_v5_3034.html)接口文档。
8. 调用OBS接口，使用平台下发的URL下载设备文件。
- 方法一：使用GET方法调用URL。调用接口的header可以不带Content-Type或者Host。如果必须要带，请检查Content-Type是否为text/plain，以及Host是否为URL的域名，否则调用接口将返回403状态码SignatureDoesNotMatch错误。
- 方法二：集成OBS的SDK调用接口，使用GET请求下载对象SDK来下载文件对象。
 
#### 配置文件上传功能
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"管理控制台"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 在左侧导航栏，选择"设备 \> 所有设备"，单击"文件上传"页签。
3. 单击"服务授权"，在新弹出的页面中单击"同意授权"。 
   图2文件上传-授权   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001951081830.png "点击放大")
   **注**：如用户仅授权过设备接入服务访问对象存储服务的权限，可在控制台选择"设备 \> 所有设备"，单击"文件上传"页签，然后单击"KMS服务授权"按钮。授权设备接入服务访问密钥管理服务的权限。
   
   
4. （可选）若没有桶，请先在OBS服务控制台创建桶，已有OBS桶的话，请跳过此步骤。 
   1. 访问[OBS控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)。
   
   2. 单击右上角的"创建桶"，进入参数配置页面。更新参数说明请参考[创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)。
      ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
      使用OBS云服务管理文件，将由OBS服务进行收费，设备接入服务不再单独对文件存储进行收费。更多OBS文件存储计费详情，请参考[计费说明](https://support.huaweicloud.com/price-obs/obs_42_0001.html)。
      
   
   
   
   
5. 单击"OBS存储配置"，选择正确桶后，该实例下的所有设备文件将上传到配置的OBS桶，您也可以单击"修改配置"更改桶。 
   图3文件上传-存储配置   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001951082846.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
   调用OBS接口上传设备文件时，每次只能上传一个文件，且文件大小不能超过5GB。
   
   
6. 如果需要使用自定义域名， 请打开开关"使用自定义域名"，选择OBS桶配置的自定义域名，并选择使用访问方式HTTPS/HTTP，单击"确定"完成配置。 
   图4文件上传-存储配置自定义域名   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001983042913.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
   使用自定义域名后，平台下发给设备上传或下载的临时URL域名为自定义域名。设备可以通过该URL上传或下载OBS文件。
   
   
 
