android客户端直传文件到阿里云OSS服务器详细流程代码

2024-05-08 22:18

本文主要是介绍android客户端直传文件到阿里云OSS服务器详细流程代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

1.阿里云官方文档

https://help.aliyun.com/document_detail/31920.html?spm=a2c4g.11186623.2.12.2a1cbdce9IWQFh#title-zp8-uz7-br6  

 

2.拼接后的地址

   http://image.chongdm.com/zhaozhuang/20200924/1600931173684.png

3.后台返回的数据格式必须解析如下:

接口:http://api.chongdm.com/gateway/oss/getOssToken
//正确返回
{"StatusCode":200,"AccessKeyId":"STS.3p***dgagdasdg","AccessKeySecret":"rpnwO9***tGdrddgsR2YrTtI","SecurityToken":"CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVtbzI=","Expiration":"2017-12-12T07:49:09Z",
}
//错误返回
{"StatusCode":500,"ErrorCode":"InvalidAccessKeyId.NotFound","ErrorMessage":"Specified access key is not found."
}

 3.app端上传文件路径,需要自己拼接

private var stsServer: String = "http://api.chongdm.com/gateway/oss/getOssToken"   
private  var oss: OSS? = nullfun initOSS() {        val credentialProvider: OSSCredentialProvidercredentialProvider = OSSAuthCredentialsProvider(stsServer)val conf = ClientConfiguration()conf.connectionTimeout = 15 * 1000 // 连接超时,默认15秒conf.socketTimeout = 15 * 1000 // socket超时,默认15秒conf.maxConcurrentRequest = 5 // 最大并发请求书,默认5个conf.maxErrorRetry = 2 // 失败后最大重试次数,默认2次oss = OSSClient(applicationContext, endpoint, credentialProvider, conf)}
fun postToOss(path: String) {val OssPath = "zhaozhuang/" + DateUtils.getCurrentDataDefaultString()+"/"+TimeUtils.getNowMills()+".png"// 构造上传请求。val put =PutObjectRequest(bucketName, OssPath, path)// 异步上传时可以设置进度回调。put.progressCallback = OSSProgressCallback { request, currentSize, totalSize ->Log.d("PutObject","currentSize: $currentSize totalSize: $totalSize")}val task: OSSAsyncTask<*> = oss!!.asyncPutObject(put,object : OSSCompletedCallback<PutObjectRequest?, PutObjectResult> {override fun onSuccess(request: PutObjectRequest?,result: PutObjectResult) {Log.d("PutObject", "UploadSuccess")Log.d("ETag", result.eTag)Log.d("RequestId", result.toString())}override fun onFailure(request: PutObjectRequest?,clientExcepion: ClientException,serviceException: ServiceException) {// 请求异常。clientExcepion?.printStackTrace()if (serviceException != null) {// 服务异常。Log.e("ErrorCode", serviceException.errorCode)Log.e("RequestId", serviceException.requestId)Log.e("HostId", serviceException.hostId)Log.e("RawMessage", serviceException.rawMessage)}}})}

 

这篇关于android客户端直传文件到阿里云OSS服务器详细流程代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971592

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地