700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 百度云BOS上传文件并返回文件地址

百度云BOS上传文件并返回文件地址

时间:2024-03-31 01:48:35

相关推荐

百度云BOS上传文件并返回文件地址

目录

依赖添加

简单上传

依赖添加

在Maven的pom.xml文件中添加bce-java-sdk的依赖:

<!-- Bos --><dependency><groupId>com.baidubce</groupId><artifactId>bce-java-sdk</artifactId><version>{version}</version></dependency>

其中,{version}为版本号,可以SDK下载页面找到。

简单上传

BOS在简单上传的场景中,支持以指定文件形式、以数据流方式、以二进制串方式、以字符串方式执行Object上传,请参考如下代码,或简单上传Demo。

package org.springblade.modules.resource.builder.oss;import com.baidubce.auth.DefaultBceCredentials;import com.baidubce.services.bos.BosClient;import com.baidubce.services.bos.BosClientConfiguration;import com.baidubce.services.bos.model.PutObjectResponse;import org.springframework.web.multipart.MultipartFile;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;/*** Bos百度云存储*/public class BosBuilder {/*** 简单上传file* @param file* @return fileUrl* @throws IOException*/public static String putObjectSimple(MultipartFile file) throws IOException {String ACCESS_KEY_ID = "akxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // 用户的Access Key IDString SECRET_ACCESS_KEY = "skxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // 用户的Secret Access KeyString ENDPOINT = ""; // 用户自己指定的域名,参考说明文档String BUCKETNAME= "bucketName"; // 用户BucketName名称// 初始化一个BosClientBosClientConfiguration config = new BosClientConfiguration();config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));config.setEndpoint(ENDPOINT);BosClient client = new BosClient(config);//获取文件名后缀String fileName = file.getOriginalFilename();String suffix = fileName.substring(fileName.lastIndexOf("."));//随机文件IDString fileId = getFileIdByTime();// 以文件形式上传ObjectPutObjectResponse putObjectFromFileResponse =client.putObject(BUCKETNAME, fileId + suffix, file.getBytes());//返回文件地址String fileUrl = "https://" + BUCKETNAME + "." + ENDPOINT + "/" + fileId + suffix;// 打印ETagSystem.out.println(putObjectFromFileResponse.getETag());// 关闭客户端client.shutdown();return fileUrl;}/*** 生成文件ID* @return fileId*/private static String getFileIdByTime() {//生成当前时间戳的IDSimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String newDate = sdf.format(new Date());//生成5位随机数int randomNum = (int) ((Math.random() * 9 + 1) * 10000);String result = String.valueOf(randomNum);String fileId= newDate + result;return fileId;}}

Object以文件的形式上传到BOS中,PutObject函数支持不超过5GB的Object上传。在PutObject请求处理成功后,BOS会在Header中返回Object的ETag作为文件标识。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。