COS操作 java实现

直接上代码


public class wwww {

    // 要客桶
    private static final String ACCESSKEY = "xxxxxxxxx";
    private static final String SECRETKEY = "xxxxxxxxxxxx";
     private static final String BUCKETNAME = "xxx-1255460490";
    private static final String APPID = "12517827811";
    private static final String REGIONID = "ap-beijing";
    private static final String KEY="timg.jpg";
    private static final String KEY01="MyFile1/1.jpg";
    /**
     * 初始化CosClient相关配置, appid、accessKey、secretKey、region
     * @return
     */
    public static COSClient getCosClient(){
      // 1 初始化用户身份信息(secretId, secretKey)
      COSCredentials cred = new BasicCOSCredentials(ACCESSKEY, SECRETKEY);
      // 2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
      // clientConfig中包含了设置region, https(默认http), 超时, 代理等set方法, 使用可参见源码或者接口文档FAQ中说明
      ClientConfig clientConfig = new ClientConfig(new Region(REGIONID));
      // 3 生成cos客户端
      COSClient cosClient = new COSClient(cred, clientConfig);
      // bucket的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
      //String bucketName = BUCKETNAME;
      return cosClient;
    }

    /**
     * 上传文件
     * @return
     * //绝对路径和相对路径都OK
     */
    public static String uploadFile() {
//        File localFile = new File("E:\\software\\JavaProject\\demo\\demo20\\src\\main\\resources\\1.jpg");
      File localFile = new File("D:\\opt\\service_server\\upload\\timg.jpg");
      PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKETNAME, KEY, localFile);

      // 设置存储类型, 默认是标准(Standard), 低频(standard_ia),一般为标准的
      putObjectRequest.setStorageClass(StorageClass.Standard);

      COSClient cc = getCosClient();
      try {
        PutObjectResult putObjectResult = cc.putObject(putObjectRequest);
        // putobjectResult会返回文件的etag
        String etag = putObjectResult.getETag();
        System.out.println(etag);
      } catch (CosServiceException e) {
        e.printStackTrace();
      } catch (CosClientException e) {
        e.printStackTrace();
      }
      // 关闭客户端
      cc.shutdown();
      return null;
    }

    /**
     * 下载文件
     * @param bucketName
     * @param key
     * @return
     */
    public static String downLoadFile(String bucketName, String key) {
      File downFile = new File("D:\\opt\\service_server\\down\\timg.jpg");
      COSClient cc = getCosClient();
      GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);

      ObjectMetadata downObjectMeta = cc.getObject(getObjectRequest, downFile);
      cc.shutdown();
      String etag = downObjectMeta.getETag();
      return etag;
    }

    /**
     * 删除文件
     * @param bucketName
     * @param key
     */
    public static void deleteFile(String bucketName, String key) {
      COSClient cc = getCosClient();
      try {
        cc.deleteObject(bucketName, key);
      } catch (CosClientException e) {
        e.printStackTrace();
      } finally {
        cc.shutdown();
      }

    }

    /**
     * 创建桶
     * @param bucketName
     * @return
     * @throws CosClientException
     * @throws CosServiceException
     */
    public static Bucket createBucket(String bucketName) throws CosClientException, CosServiceException {
      COSClient cc = getCosClient();
      Bucket bucket = null;
      try {
        bucket = cc.createBucket(bucketName);
      } catch (CosClientException e) {
        e.printStackTrace();
      } finally {
      }
      return bucket;
    };

    /**
     * 删除桶
     * @param bucketName
     * @throws CosClientException
     * @throws CosServiceException
     */
    public void deleteBucket(String bucketName) throws CosClientException, CosServiceException {
      COSClient cc = getCosClient();
      try {
        cc.deleteBucket(bucketName);
      } catch (CosClientException e) {
        e.printStackTrace();
      } finally {
      }
    };

    /**
     * 判断桶是否存在
     * @param bucketName
     * @return
     * @throws CosClientException
     * @throws CosServiceException
     */
    public static boolean doesBucketExist(String bucketName) throws CosClientException, CosServiceException {
      COSClient cc = getCosClient();
      boolean bucketExistFlag = cc.doesBucketExist(bucketName);
      return bucketExistFlag;
    };

    /**
     * 查看桶文件
     * @param bucketName
     * @return
     * @throws CosClientException
     * @throws CosServiceException
     */
    public static ObjectListing listObjects(String bucketName) throws CosClientException, CosServiceException {
      COSClient cc = getCosClient();

      // 获取 bucket 下成员(设置 delimiter)
      ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
      listObjectsRequest.setBucketName(bucketName);
      // 设置 list 的 prefix, 表示 list 出来的文件 key 都是以这个 prefix 开始
      listObjectsRequest.setPrefix("");
      // 设置 delimiter 为/, 即获取的是直接成员,不包含目录下的递归子成员
      listObjectsRequest.setDelimiter("/");
      // 设置 marker, (marker 由上一次 list 获取到, 或者第一次 list marker 为空)
      listObjectsRequest.setMarker("");
      // 设置最多 list 100 个成员,(如果不设置, 默认为 1000 个,最大允许一次 list 1000 个 key)
      listObjectsRequest.setMaxKeys(100);

      ObjectListing objectListing = cc.listObjects(listObjectsRequest);
      // 获取下次 list 的 marker
      String nextMarker = objectListing.getNextMarker();
      // 判断是否已经 list 完, 如果 list 结束, 则 isTruncated 为 false, 否则为 true
      boolean isTruncated = objectListing.isTruncated();
      List<COSObjectSummary> objectSummaries = objectListing.getObjectSummaries();
      for (COSObjectSummary cosObjectSummary : objectSummaries) {
        // get file path
        String key = cosObjectSummary.getKey();
        // get file length
        long fileSize = cosObjectSummary.getSize();
        // get file etag
        String eTag = cosObjectSummary.getETag();
        // get last modify time
        Date lastModified = cosObjectSummary.getLastModified();
        // get file save type
        String StorageClassStr = cosObjectSummary.getStorageClass();
      }
      return objectListing;
    }

    /**
     *查询一个 Bucket 所在的 Region。
     * @param bucketName
     * @return
     * @throws CosClientException
     * @throws CosServiceException
     */
    public static String getBucketLocation(String bucketName) throws Exception, CosServiceException {
      COSClient cosClient = getCosClient();
      // bucket 的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
      String location = cosClient.getBucketLocation(bucketName);
      return location;
    }

    public static void main(String[] args) throws Exception {
//        uploadFile();
          downLoadFile(BUCKETNAME , KEY);
      // deleteFile(BUCKETNAME , KEY01);
//        createBucket("sunjunxian01-1251782781");
      //deleteBucket();
//        doesBucketExist("wiwide-bi-1255550490");
//        System.out.println(listObjects(BUCKETNAME));
//      System.out.println("BUCKETNAME的位置:" + getBucketLocation(BUCKETNAME));

//      System.out.println(String.format("%s/%s", "opt/test/", "ttt/eret.jpg".replace("/", "_")));

    }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值