阿里和腾讯对象存储的简单封装

 

此代码只是学习用,不适合项目直接用,要根据自己的项目需求改动。此方法是直接转换肯定要放在子线程中运行的!

 

本人做了两个工具类,腾讯和阿里的对象存储工具,两个调用方式都差不多,试试类名不同,大家如果用的话肯定还得自己稍微优化下包括出错处理,还有我配置的参数是写死不安全的,这些信息肯定是要你们到服务器申请临时秘钥的,这个我就不教了,就是调用你们自己的服务器获取一下秘钥修改一下就行了,我的代码估计大家都能看得懂!

 

上代码

基本上就是传个文件路径


这一行就可以直接把传进去的路径转成上传过后的网络图片路径,还可以传数组,
返回的也是一个上传过后的数组,大家自己去测试把,我的项目就不引用第三方库了
都直接原生写免得下载代码了一堆的报错
 

String nativeFilepath="本地图片地址"

调用工具直接转成上传后的云上地址
String uploadOssUrl = TencentOssUtils.uploadOssFile(nativeFilepach);






public class AliOssUtils {

    //上传单个文件
    public static String uploadOssFile(String locationPath) throws Exception {
        return uploadOssFile(locationPath, null);
    }


    //上传多个文件
    public static List<String> uploadOssFiles(List<String> locationPaths) throws Exception {
        return uploadOssFiles(locationPaths, null);
    }


    //上传单个文件
    public static String uploadOssFile(String locationPath, String uploadfolder) throws Exception {
        ArrayList<String> locationPaths = new ArrayList<>();
        locationPaths.add(locationPath);
        List<String> updateResults = uploadOssFiles(locationPaths, uploadfolder);
        String uploadUrl = updateResults.get(0);
        return uploadUrl;
    }

    //上传多个文件
    public static List<String> uploadOssFiles(List<String> locationPaths, String uploadfolder) throws Exception {

        OSS oss =  new OSSClient(MyApplication.getContext(), BASE_END_POINT, new OSSStsTokenCredentialProvider(new OSSFederationToken(AccessKeyId,AccessKeySecret,"","")));

        ArrayList<String> updateResults = new ArrayList<>();
        for (String locationPath : locationPaths) {
            String uploadUrl = PutObjectFromLocalFile(oss,locationPath, uploadfolder);
            if (!"".equals(uploadUrl)) {
                updateResults.add(uploadUrl);
            }
        }
        if (updateResults.size() == locationPaths.size()) {
            return updateResults;
        } else {
            updateResults.clear();
        }
        return updateResults;

    }

    private static String PutObjectFromLocalFile(OSS oss,String locationPath, String uploadfolder) {
        try {
            uploadfolder=uploadfolder==null?"":uploadfolder+"/";
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String folderName = format.format(new Date()).toString()+"/";
            String objectKey=uploadfolder+folderName+UUID.randomUUID()+locationPath.substring(locationPath.lastIndexOf("."));
            // 构造上传请求
            PutObjectRequest put = new PutObjectRequest(BASE_BUKET_NAME, objectKey, locationPath);
            PutObjectResult putObjectResult = oss.putObject(put);
            Log.d("",putObjectResult.toString());
            String uploadpath =new StringBuilder("https://").append(BASE_BUKET_NAME).append(".").append(BASE_END_POINT).append("/").append(objectKey).toString();
            return uploadpath;
        } catch (Throwable e) {
            e.printStackTrace();
        }


        return null;
    }

    //配置参数

    public static final String AccessKeyId="LTAIu0vZyzDHqhwq";
    public static final String AccessKeySecret="nF3XSmHt25H19Q6BMCmlIHmJI6KB6W";
    public static final String RequestId="";
    public static final String Expiration="";
    public static final String SecurityToken="";

    public static final String BASE_END_POINT = "oss-cn-qingdao.aliyuncs.com";
    public static final String BASE_BUKET_NAME = "scoto263";;


}
下载地址:

https://download.csdn.net/download/lizefeng19/10775625

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值