腾讯云cos服务器上传图片

1、首先去腾讯云cos官网注册账号,选择【对象存储】;

2、接下来创建【存储桶】,【存储桶】的意思类似于单独的服务器空间,只有创建了存储桶才能存储资源;

3、系统会根据存储桶的名称 自动生成一个独有的域名;

4、存储空间搞定了,接下来就是从本地上传图片到云服务器了;同时腾讯云也提供了SDK文档和API文档,供我们借鉴,还是相当清楚的;

5、上传图片代码,需要注意的是区域,要和服务器上存储桶列表的【所属区域】字段一致;

package com.cos.web;

import java.io.File;
import java.net.URL;
import java.util.Date;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.model.StorageClass;
import com.qcloud.cos.region.Region;

public class Upload {
	public static void main(String[] args) {
		// 1 初始化用户身份信息API密钥(secretId, secretKey)
		COSCredentials cred = new BasicCOSCredentials("AKIDXuxxx", "71f4FEyWxxx");
		// 2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
		ClientConfig clientConfig = new ClientConfig(new Region("ap-beijing"));
		// 3 生成cos客户端
		COSClient cosclient = new COSClient(cred, clientConfig);
		// 存储桶bucket名需包含appid
		String bucketName = "demo-1258118289";
        // 指定要上传到 COS 上对象键
        // 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 `bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg` 中,对象键为 doc1/pic1.jpg, 详情参考 [对象键](https://cloud.tencent.com/document/product/436/13324) 
		String key = "2.png";
		File localFile = new File("src/main/resources/2.png");
		PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
		// 设置存储类型, 默认是标准(Standard), 低频(standard_ia)
		putObjectRequest.setStorageClass(StorageClass.Standard_IA);
		try {
		    PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);

			Date expiration = new Date(new Date().getTime() + 5 * 60 * 10000);
		    URL url = cosclient.generatePresignedUrl(bucketName, key, expiration);
			System.out.println("图片在COS服务器上的url:"+url);
		    // putobjectResult会返回文件的etag
		    String etag = putObjectResult.getETag();
		
		} catch (CosServiceException e) {
		    e.printStackTrace();
		} catch (CosClientException e) {
		    e.printStackTrace();
		}

		// 关闭客户端
		cosclient.shutdown();
}
	
}

6、下载图片的代码

package com.cos.web;

import java.io.File;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.GetObjectRequest;
import com.qcloud.cos.model.ObjectMetadata;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.model.StorageClass;
import com.qcloud.cos.region.Region;

public class Download {
	public static void main(String[] args) {
		// 1 初始化用户身份信息(secretId, secretKey)
		COSCredentials cred = new BasicCOSCredentials("AKIDXu20jxxxxx","71f4FEyWxxxx");
		// 2 设置bucket的区域, COS地域的简称请参照
		// https://cloud.tencent.com/document/product/436/6224
		ClientConfig clientConfig = new ClientConfig(new Region("ap-beijing"));
		// 3 生成cos客户端
		COSClient cosclient = new COSClient(cred, clientConfig);
		// bucket名需包含appid
		String bucketName = "demo-1258118289";
// 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 `bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg` 中,对象键为 doc1/pic1.jpg, 详情参考 [对象键](https://cloud.tencent.com/document/product/436/13324)
		String key = "1.png";
		File downFile = new File("src/main/resources/2.png");
		// 指定要下载的文件所在的 bucket 和对象键
		GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
		try {
			ObjectMetadata downObjectMeta = cosclient.getObject(getObjectRequest, downFile);
			// putobjectResult会返回etag
			String etag = downObjectMeta.getETag();
			System.out.println(etag);
		} catch (CosServiceException e) {
			e.printStackTrace();
		} catch (CosClientException e) {
			e.printStackTrace();
		}

		// 关闭客户端
		cosclient.shutdown();
	}
}

ps:

1 初始化用户身份信息(secretId, secretKey),在【密钥管理】里面;
2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224

猜你喜欢

转载自blog.csdn.net/weixin_42195292/article/details/84328082
今日推荐