Android OSS上传图片的使用示例
概述
阿里云对象存储服务(OSS)是阿里云提供的一种简单可靠、低成本、高可扩展性的数据存储服务。该服务基于阿里云的海量分布式存储基础设施,通过Internet提供安全、稳定、高效、低延迟的数据访问和上传下载服务。
本文将详细讲解如何在Android应用中使用阿里云OSS上传图片。
前置条件
- 阿里云AccessKey ID和AccessKey Secret
- OSS的服务地址
- OSS的Bucket名称
- presignedUrl签名服务
准备工作
引入依赖库
在项目的build.gradle文件中添加以下依赖库:
dependencies {
implementation 'com.aliyun.dpa:oss-android-sdk:2.9.0'
}
初始化OSSClient
通过AccessKey ID、AccessKey Secret和OSS服务地址创建OSSClient实例:
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; //你的OSS服务地址
String accessKeyId = "你的AccessKey ID";
String accessKeySecret = "你的AccessKey Secret";
// 初始化OSSClient
OSS oss = new OSSClient.Builder(getApplicationContext())
.setEndpoint(endpoint)
.setCredentialsProvider(new OSSPlainTextAKSKCredentialProvider(accessKeyId, accessKeySecret))
.build();
上传图片
直接上传
直接上传是指将图片数据直接上传至OSS,相对来讲速度较慢,但可以适用于小图片等场景。示例代码如下:
String bucketName = "你的Bucket名称";
String objectKey = "你的图片名称.png";
String filePath = "你的本地图片路径.png";
// 构造上传请求
PutObjectRequest put = new PutObjectRequest(bucketName, objectKey, filePath);
// 调用上传方法
PutObjectResult putResult = oss.putObject(put);
通过签名URL间接上传
通过签名URL间接上传是指通过生成签名URL,将图片数据间接地上传至OSS。相对来讲速度较快,但需要预先获取签名URL。示例代码如下:
String bucketName = "你的Bucket名称";
String objectKey = "你的图片名称.png";
String presignedUrl = "你的签名URL";
// 构造上传请求
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file); //file为需要上传的图片
PutObjectRequest put = new PutObjectRequest(presignedUrl, requestBody);
// 调用上传方法
PutObjectResult putResult = oss.putObject(put);
总结
到此,介绍了Android OSS上传图片的使用示例。阿里云OSS是一个高可靠、低成本、高可扩展性的数据存储服务,可以帮助Android应用快速上传图片至云端存储。希望本文能对需要的读者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android Oss上传图片的使用示例 - Python技术站