java-百度bos下载文件

本文详细介绍了如何使用百度BOS服务实现文件上传和打包下载功能,包括获取BosClient对象、循环获取文件并打包成zip,以及具体的下载至zip的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有个需求就是使用百度bos上传文件和文件的打包下载功能,查了好多资料都没有人分享的,自己写一篇以供以后参考。

//这个地方是获取bos的相关信息比如AK、SK以及BaiduBosBucketName等信息
//获取到相应的信息之后封装获取一个BosClient对象
String ACCESS_KEY_ID = jSONObject.getString("BaiduBosAccessKey"); // 用户的Access
			String SECRET_ACCESS_KEY = jSONObject.getString("BaiduBosSecretKey"); // 用户的Secret
			String bucketName = jSONObject.getString("BaiduBosBucketName");
			BosClientConfiguration config = new BosClientConfiguration();
			config.setEndpoint(point); // Bucket所在区域
			config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));
			BosClient client = new BosClient(config);

在获取到BosClient这个对象之后我的业务是将文件打包成zip包所以之后要获取文件列表进行打包

for (SurveyAndroid s : surveyAndroids) {
				String urlName = s.getFilesName();
				String fileName = urlName.replace("dap/", "");
				//上面获取到文件名称之后进行打包
				FileUtils.getObject(client, bucketName, fileName, zipOut);
}

下面是获取文件打包的具体代码

/**
	 * 百度云下载到zip中
	 * @param client
	 * @param bucketName
	 * @param objectKey
	 * @param zipOut
	 * @throws IOException
	 */
	public static void getObject(BosClient client, String bucketName, String objectKey, ZipOutputStream zipOut)
			throws IOException {
		// 获取Object,返回结果为BosObject对象
		BosObject object = client.getObject(bucketName, objectKey);
		// 获取Object的输入流
		InputStream objectContent = object.getObjectContent();
		zipOut.putNextEntry(new ZipEntry(objectKey));
		byte[] buffer = new byte[1024];
		int r = 0;
		while ((r = objectContent.read(buffer)) != -1) {
			zipOut.write(buffer, 0, r);
		}
		objectContent.close();
	}

目前使用官方的获取文件夹下的文件列表一直获取不到,所以只能用 循环获取的方法实现了。希望大神能提供好的方法。

BOS 技术整理-02 Oracle 数据库安装配置使用 直接安装 打开服务 并尝试连接数据库 安装远程连接工具 PLSQLDeveloper 安装配置使用 2.在 PLSQL Developer 启动,配置 oracle instanceclient 目录 4、 默认 PLSQL Developer 连接 Oracle 使用客户端字符集 utf-8 , 基于工具使用 SQL 插入中文有乱码问题,设置客户端字符集 gb2312 配置 环境变量 NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK 弹窗了,就表示成功了! 工具补充: Navicat Premium 安装和使用 直接安装 ok jquery easyui 总合 (直接看API文档 后期加上如何使用) Orcale 创建用户 先进入 Orcale 命令行 针对 BOS 系统建立新的用户 创建 bos/bos 账户, 授予角色 connect、resource -- Create the user create user BOS identified by "" default tablespace SYSTEM temporary tablespace TEMP profile DEFAULT password expire; -- Grant/Revoke role privileges grant connect to BOS; grant resource to BOS; -- Grant/Revoke system privileges grant unlimited tablespace to BOS; Spring 环境搭建 IOC 导入 context 依赖 beans、core、expression AOP 导入 测试集成 Web 集成 配置监听器 整合持久层框架 hibernate、jpa web.xml 配置 spring 监听器 src/main/resource 下 建立 applicationContext.xml rc/main/resource 提供 config.properties 外部属性文件、log4j.properties 日志配置文件 配置文件如下: applicationContext.xml  struts2 注解 类上 @ParentPackage 包继承谁? extends=”struts-default” @Namespace 包命名空间 namespace=”/” @Actions struts2 的 Action 配置,用于配置多个 Action 方法上 @Action 配置访问路径,和方法绑定 @Result 结果集配置  struts2 和 spring 整合 struts2 的 Action 使用 spring 注解,被 spring 管理 @Controller spring 表现层 bean @Scope 配置 Action 为多例 Spring Data JPA 代替了 Hibernate "CURD " 但是和Hibernate一样 实现DAO(数据)层的功能 "增删改查" Hibernate 实体类 生成表结构 ---- 领域(Domain)驱动建模 这次使用的是驱动建模,传统的设计模式是: 先设计表,再创建实体 JPA 注解使用 @Entity 标明是实体类 @Table 映射表名称 @Id 主键标识 @GeneratedValue 自动生成主键的值 @Column 设置映射数据表中列信息 @Temporal 控制数据表保存日期哪个部分(日期、时间、日期时间) @OneToMany(mappedBy 相当于 inverse ) @ManyToOne 结合 @JoinColumn 添加一列外键 @ManyToMany 一方写 mappedBy 放弃外键维护、另一方 @JoinTable 维护中间表 收派标准修添加能实现 html 请求 后台处理 服务器端Service和DAO编写整合springdatajpa 业务层接口 修改 Action 代码调用 Service 业务层实现类 在applicationContext添加一条 用来整合 Spring Data jpa <jpa:repositories base-package="cn.itcast.bao.dao" /> 注意: 这里的扫描包,必须指定到类的上级包 比如 一个类 com.itStone.bao.dao.test.java 那么它的上级包 就是 com.itStone.bao.dao 根级包是 : 就是 com 只需要编写 DAO 接口,继承 JpaRepository即可 不需要对 DAO 接口做任何实现, 实际上 spring 会调用 SimpleJpaRepository 实现 struts 2 注解
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值