安卓上传图片到阿里云

1环境搭建:

              1,下载阿里云AndroidSDK,https://docs.aliyun.com/?spm=5176.7189909.0.0.fkYxYy#/pub/oss/sdk/sdk-download&android

              2,下载AndroidSDK包含4个内容,一是阿里云的安卓例子Android-Example,二是阿里云的使用文档doc,三是阿里云的sdk,四是Federation Token鉴权加签所需文件

把sdk拷到项目的libs目录下即可。

2初始化 《如果出现找不到sdk里面的类异常,则需要更新自己的开发环境》

         1, 在配置文件下加入以下权限 
<!-- 阿里云所需权限 start-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 阿里云所需权限 end-->
      2,在application中初始化阿里云
//--------------------------阿里云相关--Start-------------------------------
private OSSService ossService;
private String BucketName="collect-app";
private OSSBucket bucket;
private String host="oss-cn-qingdao.aliyuncs.com"; //外网
//private String host="oss-cn-qingdao-internal.aliyuncs.com"; //内网
static final String accessKey = "输入自己的key"; // 测试代码没有考虑AK/SK的安全性
static final String screctKey = "输入自己的key";
//---------------------------阿里云相关---end--------------------------------
public OSSService getOssService(){
return ossService;
}
//阿里云相关--------------------------start-------------------------------------
private void initAliyun() {

ossService = OSSServiceProvider.getService();
ossService.setApplicationContext(getApplicationContext());
ossService.setGlobalDefaultHostId(host);
/*ossService.setAuthenticationType(AuthenticationType.FEDERATION_TOKEN);
ossService.setGlobalDefaultStsTokenGetter(new StsTokenGetter() {

@Override
public OSSFederationToken getFederationToken() {
// TODO Auto-generated method stub
return null;
}
});*/
ossService.setGlobalDefaultACL(AccessControlList.PRIVATE); // 默认为private
ossService.setAuthenticationType(AuthenticationType.ORIGIN_AKSK); // 设置加签类型为原始AK/SK加签
ossService.setGlobalDefaultTokenGenerator(new TokenGenerator() { // 设置全局默认加签器
@Override
public String generateToken(String httpMethod, String md5, String type, String date,
String ossHeaders, String resource) {

String content = httpMethod + "\n" + md5 + "\n" + type + "\n" + date + "\n" + ossHeaders
+ resource;
Log.i("ss","加签器"+ content.toString());
return OSSToolKit.generateToken(accessKey, screctKey, content);
}
});
ossService.setCustomStandardTimeWithEpochSec(System.currentTimeMillis() / 1000); // epoch时间,从1970年1月1日00:00:00 UTC经过的秒数

ClientConfiguration conf = new ClientConfiguration();
conf.setConnectTimeout(15 * 1000); // 设置建连超时时间,默认为30s
conf.setSocketTimeout(15 * 1000); // 设置socket超时时间,默认为30s
conf.setMaxConnections(50); // 设置全局最大并发连接数,默认为50个
ossService.setClientConfiguration(conf);
}
      3,在需要上传图片的activity上传文件
private OSSService ossService;
private String BucketName="阿里云控制台里面的bucket名称";
private OSSBucket bucket;
private int cancedialog=0;

public void fileUpload(String filename,String filepath) {

OSSFile ossFile = ossService.getOssFile(bucket, filename);
try {
ossFile.setUploadFilePath(filepath, "image/png");
} catch (Exception e) {
e.printStackTrace();
} // 指明需要上传的文件的路径,和文件内容类型,如果文件不存在将抛出异常
ossFile.enableUploadCheckMd5sum(); // 开启上传md5校验
ossFile.uploadInBackground(new SaveCallback() {

@Override
public void onSuccess(String objectKey) {
Log.i("ss", "上传成功");





@Override
public void onProgress(String objectKey, int byteCount, int totalSize) {
Log.i("ss", "正在上传");


}

@Override
public void onFailure(String objectKey, OSSException ossException) {
Log.i("ss", "上传失败"+ossException.toString()+objectKey.toString());

}
});
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值