Android SDK

<p>&nbsp;</p> <p>1. 简介</p> <ul> <li>本文档主要介绍 OBS Android SDK 的接口使用及注意事项;</li> <li>并且假设您已经开通了 OBS 服务,并已是平安公有云用户;</li> <li>如果您还没有开通或者还不了解平安云 OBS 服务,请登录 <a href="/ssr/products/OBS" target="_blank">OBS产品主页</a>进行了解;</li> <li>OBS-Android-SDK 是由平安云团队开发的工具包。便于开发者在 Android 上方便使用平安云当中的 OBS 服务;</li> <li>文档主要罗列了 OBS-Android-SDK 中,上传以及下载的一些基本方法,并对方法参数进行简要解释,且对响应方法有一个详细的说明。</li> </ul> <p>2. SDK下载</p> <p>Android SDK 开发包最新版本 <a href="https://pcp-portal-sca.obs-cn-shenzhen.pinganyun.com/sdk%2Fobs-android-sdk-1.2.0.jar?response-content-disposition=attachment%3Bfilename%3Dobs-android-sdk-1.2.0.jar" target="_blank">v1.2.0</a></p> <p>3. API概览</p> <table> <caption>&nbsp;</caption> <thead> <tr> <th> <p>API</p> </th> <th> <p>描述</p> </th> </tr> </thead> <tbody> <tr> <td> <p>init</p> </td> <td> <p>初始化服务</p> </td> </tr> <tr> <td> <p>uploadFile</p> </td> <td> <p>上传文件</p> <p>OBS SDK提供了丰富的文件上传接口,可以通过以下方式上传文件:</p> <ul> <li>文件上传</li> <li>分片上传</li> </ul> </td> </tr> <tr> <td> <p>sliceUploadFile</p> </td> <td> <p>分片上传文件</p> </td> </tr> <tr> <td> <p>uploadImageScale</p> </td> <td> <p>压缩上传图片</p> </td> </tr> <tr> <td> <p>downloadFile</p> </td> <td> <p>下载文件</p> </td> </tr> </tbody> </table> <p>4. API描述</p> <p><strong>(1) init</strong></p> <p><strong>接口描述</strong></p> <p>初始化服务,在 Application 中初始化:</p> <pre> <code>RequestManager.getInstance().init(this); </code></pre> <p><strong>(2) uploadFile</strong></p> <p><strong>接口描述</strong></p> <p>根据文件路径上传</p> <p><strong>请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th> <p>参数名称</p> </th> <th> <p>参数类型</p> </th> <th> <p>是否必须</p> </th> <th> <p>参数描述</p> </th> <th> <p>备注</p> </th> </tr> </thead> <tbody> <tr> <td> <p>bucket</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>所要上传到指定bucket的名称</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>fileKey</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>对应bucket里文件的key</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>filePath</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>上传文件路径</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>config</p> </td> <td> <p>Configuration</p> </td> <td> <p>true</p> </td> <td> <p>配置上传下载服务器地址</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>requestListener</p> </td> <td> <p>RequestListener</p> </td> <td> <p>true</p> </td> <td> <p>请求的回调</p> </td> <td> <p>-</p> </td> </tr> </tbody> </table> <p><strong>响应参数</strong></p> <p>无</p> <p><strong>(3) uploadFile</strong></p> <p><strong>接口描述</strong></p> <p>根据文件上传</p> <p><strong>请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th> <p>参数名称</p> </th> <th> <p>参数类型</p> </th> <th> <p>是否必须</p> </th> <th> <p>参数描述</p> </th> <th> <p>备注</p> </th> </tr> </thead> <tbody> <tr> <td> <p>bucket</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>所要上传到指定bucket的名称</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>fileKey</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>对应bucket里文件的key</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>file</p> </td> <td> <p>File</p> </td> <td> <p>true</p> </td> <td> <p>上传文件对象</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>config</p> </td> <td> <p>Configuration</p> </td> <td> <p>true</p> </td> <td> <p>配置上传下载服务器地址</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>requestListener</p> </td> <td> <p>RequestListener</p> </td> <td> <p>true</p> </td> <td> <p>请求的回调</p> </td> <td> <p>-</p> </td> </tr> </tbody> </table> <p><strong>响应参数</strong></p> <p>无</p> <p><strong>(4) sliceUploadFile</strong></p> <p><strong>接口描述</strong></p> <p>分片上传文件</p> <p><strong>请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th> <p>参数名称</p> </th> <th> <p>参数类型</p> </th> <th> <p>是否必须</p> </th> <th> <p>参数描述</p> </th> <th> <p>备注</p> </th> </tr> </thead> <tbody> <tr> <td> <p>bucket</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>所要上传到指定bucket的名称</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>fileKey</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>对应bucket里文件的key</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>filePath</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>上传文件路径</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>config</p> </td> <td> <p>Configuration</p> </td> <td> <p>true</p> </td> <td> <p>配置上传下载服务器地址</p> </td> <td> <p>必须设置recorder参数</p> </td> </tr> <tr> <td> <p>requestListener</p> </td> <td> <p>RequestListener</p> </td> <td> <p>true</p> </td> <td> <p>请求的回调</p> </td> <td> <p>-</p> </td> </tr> </tbody> </table> <p><strong>响应参数</strong></p> <p>无</p> <p><strong>(5) uploadImageScale</strong></p> <p><strong>接口描述</strong></p> <p>压缩上传图片</p> <p><strong>请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th> <p>参数名称</p> </th> <th> <p>参数类型</p> </th> <th> <p>是否必须</p> </th> <th> <p>参数描述</p> </th> <th> <p>备注</p> </th> </tr> </thead> <tbody> <tr> <td> <p>bucket</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>所要上传到指定bucket的名称</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>fileKey</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>对应bucket里文件的key</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>file</p> </td> <td> <p>File</p> </td> <td> <p>true</p> </td> <td> <p>上传文件路径</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>config</p> </td> <td> <p>Configuration</p> </td> <td> <p>true</p> </td> <td> <p>配置上传下载服务器地址</p> </td> <td> <p>必须设置recorder参数</p> </td> </tr> <tr> <td> <p>compress</p> </td> <td> <p>float</p> </td> <td> <p>true</p> </td> <td> <p>缩小的比例0-1</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>requestListener</p> </td> <td> <p>RequestListener</p> </td> <td> <p>true</p> </td> <td> <p>请求的回调</p> </td> <td> <p>-</p> </td> </tr> </tbody> </table> <p><strong>响应参数</strong></p> <p>无</p> <p><strong>(6)downloadFile</strong></p> <p><strong>接口描述</strong></p> <p>下载文件</p> <p><strong>请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>参数名称</th> <th>参数类型</th> <th>是否必须</th> <th>参数描述</th> <th>备注</th> </tr> </thead> <tbody> <tr> <td> <p>bucket</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>所要上传到指定bucket的名称</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>fileKey</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>对应bucket里文件的key</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>downloadLocaPath</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>下载到本地的文件夹路径</p> </td> <td> <p>以/结尾</p> </td> </tr> <tr> <td> <p>config</p> </td> <td> <p>Configuration</p> </td> <td> <p>true</p> </td> <td> <p>配置上传下载服务器地址</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>fileName</p> </td> <td> <p>String</p> </td> <td> <p>true</p> </td> <td> <p>下载后展示的文件名</p> </td> <td> <p>-</p> </td> </tr> <tr> <td> <p>requestListener</p> </td> <td> <p>RequestListener</p> </td> <td> <p>true</p> </td> <td> <p>请求的回调</p> </td> <td> <p>-</p> </td> </tr> </tbody> </table> <p><strong>响应参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>参数名称</th> <th>参数类型</th> <th>参数描述</th> <th>备注</th> </tr> </thead> <tbody> <tr> <td> <p>/</p> </td> <td> <p>String</p> </td> <td> <p>sdk请求Id</p> </td> <td> <p>可作为取消cancel下载的入参</p> </td> </tr> </tbody> </table> <p>5.其他说明</p> <p><strong>(1)设置https</strong></p> <pre> Configuration config = <strong>new</strong> Configuration.Builder().***.useHttps(true).***.build();</pre> <p><strong>(2)取消请求</strong></p> <pre> RequestManager.getInstance().cancel(NET_TAG);</pre> <p>说明: 每一个请求会返回一个唯一的tag。</p> <p><strong>(3)签名回调</strong></p> <pre> config.setSignerCredentialProvider(<strong>new</strong> SignerCredentialProvider() { <em><span style="color:gray">@Override</span></em> <strong>public</strong> String signContent(String content) { <em>//signContent中的content的数据是由&ldquo;\n&rdquo;分割的参数:</em> String[] params = content.split(&ldquo;\n&rdquo;); <em>//访问后端签名服务(建议采用POST提交,所有参数都放在Body,避免对部分参数进行url编码),返回完整的authorization(AWS AK:token),如:AWS NEM3NEE************jA2NTE3M0I0RjY:Zy3ewmKyDQyQoQLc+ssoxoPKqaE=</em> <strong>return</strong> authorization; } </pre> <p>入参content各元素含义:</p> <ul> <li>params[0]; POST/GET&hellip;&hellip;,Http method</li> <li>params[1]; Bucket,桶名称</li> <li>params[2]; key,文件在OBS唯一标识</li> <li>params[3]; content-type,文件类型</li> <li>params[4]; date,请求产生时间(GMT格式,如:Fri, 15 May 2020 06:20:34 GMT)</li> <li>params[5]; uri,一般为/{bucket}/{key}(普通上传、下载等接口uri)或者/mkblk/{bucket}/{key:.*}/{blockIndex}(分片上传接口,分片上传另外还有bput、mkfile等接口)</li> </ul> <p><strong>后端签名服务实现</strong></p> <p>(1) JAVA SDK方式</p> <p>请参见<a href="/ssr/help/storage/obs/OBS_SDK_.creatsign" target="_blank">生成签名</a>。</p> <p>(2)自行实现签名算法</p> <p>请参见<a href="/ssr/help/storage/obs/api.Introduction" target="_blank">签名生成规则</a>。</p>
以上内容是否解决了您的问题?
请补全提交信息!
咨询·建议

电话咨询

400-151-8800

邮件咨询

cloud@pingan.com

在线客服

工单支持

解决云产品相关技术问题