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.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.model.GetObjectRequest;
import com.qcloud.cos.region.Region;
import com.qcloud.cos.model.COSObject;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.FileOutputStream;
public class TencentCloudCOSExample {
// 腾讯云 API 密钥信息
private static final String SECRET_ID = "your-secret-id";
private static final String SECRET_KEY = "your-secret-key";
// 存储桶名称,格式:BucketName-APPID
private static final String BUCKET_NAME = "your-bucket-name-appid";
// 地域信息,例如 ap-guangzhou
private static final String REGION = "your-region";
public static void main(String[] args) {
// 初始化 COSClient
COSClient cosClient = initCosClient();
try {
// 上传文件示例
uploadFile(cosClient);
// 下载文件示例
downloadFile(cosClient);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭客户端
cosClient.shutdown();
}
}
/**
* 初始化 COS 客户端
*/
private static COSClient initCosClient() {
// 1. 初始化用户身份信息(secretId, secretKey)
COSCredentials cred = new BasicCOSCredentials(SECRET_ID, SECRET_KEY);
// 2. 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
ClientConfig clientConfig = new ClientConfig(new Region(REGION));
// 3. 生成 cos 客户端
return new COSClient(cred, clientConfig);
}
/**
* 上传文件到 COS
*/
private static void uploadFile(COSClient cosClient) {
// 要上传的文件
File localFile = new File("path/to/local/file.txt");
// 存储在 COS 中的路径
String key = "example/file.txt";
// 创建上传请求
PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, key, localFile);
try {
// 执行上传
PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
// 上传成功后,可以获取文件的 etag
String etag = putObjectResult.getETag();
System.out.println("文件上传成功,ETag: " + etag);
} catch (CosServiceException e) {
// 服务端异常
e.printStackTrace();
} catch (CosClientException e) {
// 客户端异常
e.printStackTrace();
}
}
/**
* 从 COS 下载文件
*/
private static void downloadFile(COSClient cosClient) {
// 存储在 COS 中的路径
String key = "example/file.txt";
// 下载到本地的路径
File localFile = new File("path/to/download/file.txt");
// 创建下载请求
GetObjectRequest getObjectRequest = new GetObjectRequest(BUCKET_NAME, key);
try {
// 执行下载
COSObject cosObject = cosClient.getObject(getObjectRequest);
// 获取文件输入流
InputStream inputStream = cosObject.getObjectContent();
// 将文件写入本地
FileOutputStream fileOutputStream = new FileOutputStream(localFile);
byte[] buffer = new byte[1024 * 1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
// 关闭流
fileOutputStream.close();
inputStream.close();
System.out.println("文件下载成功");
} catch (CosServiceException e) {
// 服务端异常
e.printStackTrace();
} catch (CosClientException e) {
// 客户端异常
e.printStackTrace();
} catch (IOException e) {
// IO 异常
e.printStackTrace();
}
}
} 原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。