aliyun / aliyun-oss-android-sdk

Android SDK for aliyun object storage service
807 stars 306 forks source link

分享简单上传的极简核心代码 #323

Open mankind-evolve opened 2 years ago

mankind-evolve commented 2 years ago
    String endpoint = "http://oss-us-east-1.aliyuncs.com";  //自己查oss所在的endpoint  文档地址  https://help.aliyun.com/document_detail/31837.htm?spm=a2c4g.11186623.0.0.256146977ntkdT#concept-zt4-cvy-5db
    String bucket = " oos的名称 ";
    String stsServer = "自己搭建的sts服务器地址,需要修改参数";   //我用PHP搭建的,修改的地方有  config.json里面的 AccessKeyID 、AccessKeySecret、RoleArn  三个全改     policy文件里面,设置读写权限文件的 Resource 需要改   "Resource": ["acs:oss:*:*:你自己的oss的名称/*"]

    //使用自己的获取STSToken的类
    OSSCredentialProvider credentialProvider;
    credentialProvider = new OSSAuthCredentialsProvider(stsServer);

    ClientConfiguration conf = new ClientConfiguration();
    conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒
    conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒
    conf.setMaxConcurrentRequest(5); // 最大并发请求书,默认5个
    conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次

    OSS oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider, conf);
    mService = new OssServiceWithCallBack(oss, bucket);  //OssServiceWithCallBack这个我自己用官方的 OssService修改的,自己加了回调
    mService.initOss(oss);

上面是初始化,使用的时候 mService.asyncPutImage 我不明白,为什么请求进行中和请求成功和失败不放到一起,反而分了两个接口,我也懒的改凑合用吧

    mService.asyncPutImage("1.mp4", locationpath, new OSSProgressCallback<PutObjectRequest>() {
        @Override
        public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {

        }
    }, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
        @Override
        public void onSuccess(PutObjectRequest request, PutObjectResult result) {

        }

        @Override
        public void onFailure(PutObjectRequest request, ClientException clientException, ServiceException serviceException) {

        }
    });