阿里云国际站:android阿里云oss

阿里云国际站提供了适用于 Android 的阿里云 OSS SDK,以下是如何在 Android 应用中集成和使用阿里云 OSS 的简要步骤:

1. 添加依赖

build.gradle 文件中添加阿里云 OSS 的依赖:

dependencies {
    implementation 'com.aliyun.dpa:oss-android-sdk:+'
}

2. 初始化 SDK

在应用程序启动时初始化 OSS:

import com.alibaba.sdk.android.oss.ClientConfiguration;
import com.alibaba.sdk.android.oss.OSS;
import com.alibaba.sdk.android.oss.OSSClient;
import com.alibaba.sdk.android.oss.common.auth.OSSAuthCredentialsProvider;
import com.alibaba.sdk.android.oss.common.auth.OSSFederationToken;
import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider;

public class MyApplication extends Application {
    private static OSS oss;

    @Override
    public void onCreate() {
        super.onCreate();

        // 配置OSS客户端
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        OSSCredentialProvider credentialProvider = new OSSAuthCredentialsProvider("Your_Auth_Server_URL");

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

        oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider, conf);
    }

    public static OSS getOss() {
        return oss;
    }
}

3. 上传文件

创建上传任务:

import com.alibaba.sdk.android.oss.ClientException;
import com.alibaba.sdk.android.oss.OSS;
import com.alibaba.sdk.android.oss.ServiceException;
import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback;
import com.alibaba.sdk.android.oss.common.utils.OSSLog;
import com.alibaba.sdk.android.oss.model.OSSRequest;
import com.alibaba.sdk.android.oss.model.OSSResult;
import com.alibaba.sdk.android.oss.model.PutObjectRequest;
import com.alibaba.sdk.android.oss.model.PutObjectResult;

public class UploadUtils {

    public void uploadFile(String bucketName, String objectKey, String uploadFilePath) {
        OSS oss = MyApplication.getOss();

        // 构造上传请求
        PutObjectRequest put = new PutObjectRequest(bucketName, objectKey, uploadFilePath);

        // 异步上传
        oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
            @Override
            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
                OSSLog.logDebug("UploadSuccess");
                OSSLog.logDebug("ETag", result.getETag());
                OSSLog.logDebug("RequestId", result.getRequestId());
            }

            @Override
            public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
                // 请求异常
                if (clientExcepion != null) {
                    // 本地异常如网络异常等
                    clientExcepion.printStackTrace();
                }
                if (serviceException != null) {
                    // 服务异常
                    OSSLog.logError("ErrorCode", serviceException.getErrorCode());
                    OSSLog.logError("RequestId", serviceException.getRequestId());
                    OSSLog.logError("HostId", serviceException.getHostId());
                    OSSLog.logError("RawMessage", serviceException.getRawMessage());
                }
            }
        });
    }
}

4. 下载文件

创建下载任务:

阿里云国际站:android阿里云oss
import com.alibaba.sdk.android.oss.ClientException;
import com.alibaba.sdk.android.oss.ServiceException;
import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback;
import com.alibaba.sdk.android.oss.model.GetObjectRequest;
import com.alibaba.sdk.android.oss.model.GetObjectResult;

public class DownloadUtils {

    public void downloadFile(String bucketName, String objectKey, String downloadFilePath) {
        OSS oss = MyApplication.getOss();

        // 构造下载请求
        GetObjectRequest get = new GetObjectRequest(bucketName, objectKey);

        // 异步下载
        oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
            @Override
            public void onSuccess(GetObjectRequest request, GetObjectResult result) {
                // 下载成功
                InputStream inputStream = result.getObjectContent();
                byte[] buffer = new byte[2048];
                int len;
                File file = new File(downloadFilePath);
                try {
                    FileOutputStream outputStream = new FileOutputStream(file);
                    while ((len = inputStream.read(buffer)) != -1) {
                        outputStream.write(buffer, 0, len);
                    }
                    outputStream.close();
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(GetObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
                // 请求异常
                if (clientExcepion != null) {
                    // 本地异常如网络异常等
                    clientExcepion.printStackTrace();
                }
                if (serviceException != null) {
                    // 服务异常
                    OSSLog.logError("ErrorCode", serviceException.getErrorCode());
                    OSSLog.logError("RequestId", serviceException.getRequestId());
                    OSSLog.logError("HostId", serviceException.getHostId());
                    OSSLog.logError("RawMessage", serviceException.getRawMessage());
                }
            }
        });
    }
}

通过以上步骤,您可以在 Android 应用中集成和使用阿里云 OSS 服务,实现文件的上传和下载功能。请确保替换代码中的 Your_Auth_Server_URL 和其他配置信息为您实际的参数。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/189119.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年7月11日 06:29
下一篇 2024年7月11日 06:41

相关推荐

  • 阿里云 数据集成

    如何把数据迁移到云计算 企业传统的IT业务应用一般都构建在物理服务器和存储设备上,当开始进行云迁移时,一般会采用标准化技术,对以往的服务器及存储资源进行整合。对已存在的老的要上云的业务进行迁移评估,并根据数据中心的资源情况来制定详细的解决方案是比较重要的;如果是新的应用系统,则分配相应的资源,直接部署在云计算环境中即可。任何要上云的业务,对其实现难度的评估是…

    2023年8月26日
    18600
  • 台州阿里云代理商:按年租GPU并行运算服务器

    台州阿里云代理商提供按年租用GPU并行计算服务器的服务。GPU并行计算服务器是一种高性能计算服务器,可以提供强大的计算能力,适用于需要进行大规模并行计算的任务,比如深度学习、机器学习、数据挖掘等。 通过租用GPU并行计算服务器,用户可以获得高性能的计算资源,无需购买昂贵的硬件设备,节省成本。阿里云代理商可以根据用户的需求提供不同配置的GPU并行计算服务器,例…

    2023年12月15日
    17500
  • 曲靖阿里云代理商:安卓中的虚拟机换成

    曲靖阿里云代理商:安卓中的虚拟机的优势与好用之处 引言 在当今数字化时代,云计算技术成为了各个行业的重要工具。阿里云作为国内领先的云计算服务提供商,以其强大的技术实力和丰富的产品线,在市场上占据重要地位。本文将重点介绍曲靖地区阿里云代理商的服务,结合安卓虚拟机,探讨阿里云的优势和好用之处。 1. 高性能和稳定性 阿里云作为全球云计算服务的领先者,通过庞大的服…

    2024年1月12日
    21700
  • 阿里云数据库mysql多少钱一年

    阿里云数据库MySQL的定价是根据不同的实例规格和购买时长而有所不同,以下是一些常见的MySQL实例定价和购买时长: 基础版(Basic Edition):价格区间为每年500元到25000元不等。 高可用版(High-Availability Edition):价格区间为每年26000元到40000元不等。 金融版(Finance Edition):价格区…

    2023年8月13日
    20100
  • 阿里云短信申请不通过怎么办

    如果阿里云短信申请不通过,您可以按照以下步骤处理: 查看拒绝原因:登录阿里云官网,进入短信服务控制台,在审核记录中查看申请被拒绝的原因。 修正拒绝原因:根据拒绝原因,进行相应的改正。可能的原因包括提供的信息不完整或不符合要求,提供的文件或资料不完整等。 重新提交申请:根据拒绝原因所提示的信息要求,完善相关信息和材料,并重新提交申请。 联系阿里云客服:如果您不…

    2023年9月11日
    18500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/