腾讯云COS,上传,下载,删除,在线查看等操作 您所在的位置:网站首页 腾讯云cos打包下载 腾讯云COS,上传,下载,删除,在线查看等操作

腾讯云COS,上传,下载,删除,在线查看等操作

#腾讯云COS,上传,下载,删除,在线查看等操作| 来源: 网络整理| 查看: 265

研究了下文档,学会的先记录下。

首先新建工具类COSUtil。

配置账号密码、存储桶以生成客户端(每个方法下都需要配置,为了代码简洁后面的方法会省略):

1 String secretId = "root";                         //初始化用户身份信息(secretId, secretKey)。 2 String secretKey = "123456;    3 String bucketName = "test-1250000000";                   //初始化存储桶 4 5 COSCredentials cred = new BasicCOSCredentials(secretId, secretKey); 6 Region region = new Region("ap-shanghai");            //设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224 7 ClientConfig clientConfig = new ClientConfig(region);    //clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。 8 COSClient cosClient = new COSClient(cred, clientConfig);    //生成 cos 客户端。

 

文件上传:

public static String upload(File file) { if(file==null){      //判断文件是否为空 return null; } try { // 指定要上传到 COS 上对象键,对象键其实就是该文件存储在腾讯云的文件路径和文件名,如:"file/test.log"。 String key = "file/test.log"; System.out.println(key); PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, file); PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest); return key; //String etag = putObjectResult.getETag(); // 获取文件的 etag } catch (CosServiceException serverException) { serverException.printStackTrace(); } catch (CosClientException clientException) { clientException.printStackTrace(); } return ""; }

 

 

文件下载(流):

  //传入key以获取文件下载流  public static COSObjectInputStream download(String key){ GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);//根据桶和key获取文件请求 System.out.println("文件请求:"+getObjectRequest); COSObject cosObject = cosClient.getObject(getObjectRequest); COSObjectInputStream cosObjectInput = cosObject.getObjectContent(); System.out.println("输出流:"+cosObjectInput); return cosObjectInput; }

 

文件下载(实体):

//根据key下载文件实体 public static ObjectMetadata download1(String key){     File downFile = new File("d:/1111.pdf"); //自定义下载文件路径或直接填key GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key); ObjectMetadata downObjectMeta = cosClient.getObject(getObjectRequest, downFile); //返回文件的属性 ObjectMetadata,包含文件的自定义头和 content-type 等属性。 return downObjectMeta; }

 

获取文件临时url:

public static String generatePresignedUrl(String key){                  //若要用此url查看在线文件,key必须以".png",".pdf"等后缀结尾 2020-01-04 12:02:47 Date expirationTime = new Date(System.currentTimeMillis() + 30L * 60L * 1000L); //半小时后过期 System.out.println("expiratioin"+expirationTime.toString()); URL url = cosClient.generatePresignedUrl(bucketName, key, expirationTime); //获取url地址 System.out.println(url); return url.toString(); }

 

在控制台打印文件信息(以下代码打印了全部):

public static void showAllFile(){ // Bucket的命名格式为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 //String bucketName = "examplebucket-1250000000"; ListObjectsRequest listObjectsRequest = new ListObjectsRequest(); // 设置bucket名称 listObjectsRequest.setBucketName(bucketName); // prefix表示列出的object的key以prefix开始 listObjectsRequest.setPrefix(""); // deliter表示分隔符, 设置为/表示列出当前目录下的object, 设置为空表示列出所有的object listObjectsRequest.setDelimiter(""); // 设置最大遍历出多少个对象, 一次listobject最大支持1000 listObjectsRequest.setMaxKeys(1000); ObjectListing objectListing = null; do { try { objectListing = cosClient.listObjects(listObjectsRequest); } catch (CosServiceException e) { e.printStackTrace(); return; } catch (CosClientException e) { e.printStackTrace(); return; } // common prefix表示表示被delimiter截断的路径, 如delimter设置为/, common prefix则表示所有子目录的路径 List commonPrefixs = objectListing.getCommonPrefixes(); // object summary表示所有列出的object列表 List cosObjectSummaries = objectListing.getObjectSummaries(); for (COSObjectSummary cosObjectSummary : cosObjectSummaries) { // 文件的路径key String key = cosObjectSummary.getKey(); // 文件的etag String etag = cosObjectSummary.getETag(); // 文件的长度 long fileSize = cosObjectSummary.getSize(); // 文件的存储类型 String storageClasses = cosObjectSummary.getStorageClass(); System.out.println("路径与文件名:"+key); System.out.println("etag:"+etag); System.out.println("文件大小:"+fileSize); System.out.println("类型:"+storageClasses); System.out.println(); } String nextMarker = objectListing.getNextMarker(); listObjectsRequest.setMarker(nextMarker); } while (objectListing.isTruncated()); }

 

删除文件(单个):

//删除文件 public static void deleteObject(String key){ cosClient.deleteObject(bucketName, key); }

 

删除文件(批量):

/** * 删除文件(批量) * @param keyList //要删除文件的key表 */ public static void deleteObjects(List keyList){ keyList.add(new KeyVersion("project/folder1/picture.jpg")); keyList.add(new KeyVersion("project/folder2/text.txt")); keyList.add(new KeyVersion("project/folder2/music.mp3")); DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName); deleteObjectsRequest.setKeys(keyList); // 批量删除文件 try { DeleteObjectsResult deleteObjectsResult = cosclient.deleteObjects(deleteObjectsRequest); List deleteObjectResultArray = deleteObjectsResult.getDeletedObjects(); } catch (MultiObjectDeleteException mde) { // 如果部分删除成功部分失败, 返回MultiObjectDeleteException List deleteObjects = mde.getDeletedObjects(); List deleteErrors = mde.getErrors(); } catch (CosServiceException e) { // 如果是其他错误,例如参数错误, 身份验证不过等会抛出 CosServiceException e.printStackTrace(); } catch (CosClientException e) { // 如果是客户端错误,例如连接不上COS e.printStackTrace(); } }

 

暂时就先写这点了。2019-12-24 15:51:41



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有