阿里云OSS追加上传(java)-阿里云开发者社区

开发者社区> wgwxf> 正文

阿里云OSS追加上传(java)

简介: 需求:不断接收数据,将数据写入文件存放到OSS 方案: 1、接收到文件后写到本地,定期或实时覆盖上传到OSS 2、OSS追加上传 只贴2代码: 标红处注意,如不声明则写入OSS中文会乱码。
+关注继续查看

场景描述:不断接收数据,将数据写入文件存放到OSS

方案:

1、接收到文件后写到本地,定期或实时覆盖上传到OSS

2、OSS追加上传

只贴2代码:



public boolean writeFile(String content) {

		// 创建OSSClient实例

		OSSClient ossClient = new OSSClient(ossConfig.getEndPoint(), ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret());



		try {

			// 判断bucket是否存在

			if (!ossClient.doesBucketExist(ossConfig.getBucketName())) {

				ossClient.createBucket(ossConfig.getBucketName());// 创建Bucket

				logger.info("Bucket {} 不存在,已创建。", ossConfig.getBucketName());

			}



			// 判断当日目录是否存在

			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");

			Date today = new Date();

			String todayDirectoryName = ossConfig.getDirectory() + simpleDateFormat.format(today) + "/";

			if (!ossClient.doesObjectExist(ossConfig.getBucketName(), todayDirectoryName)) {

				OSSUtil.createDirectory(ossClient, ossConfig.getBucketName(), todayDirectoryName);

				logger.info("目录 {} 不存在,已创建。", todayDirectoryName);

			}



			InputStream inputStream = new ByteArrayInputStream(content.getBytes());



			// 按规则生成文件名

			String deviceFileName = todayDirectoryName + 文件名 + ".txt";



			// 从OSS取文件,读其大小

			Long position = OSSUtil.getRemoteFileSize(ossClient, ossConfig.getBucketName(), deviceFileName);

			logger.debug("{} 写入位置 {}", deviceFileName, position);



			// 创建上传Object的Metadata,如不声明则写入OSS中文会乱码

			ObjectMetadata meta = new ObjectMetadata();

			meta.setContentType("text/plain; charset=utf-8");



			ossClient.appendObject(new AppendObjectRequest(ossConfig.getBucketName(), deviceFileName, inputStream, meta).withPosition(position));



			return true;

		} catch (Exception e) {

			logger.error("OSS文件写入异常", e);

			return false;

		} finally {

			ossClient.shutdown();

		}

	}

~~~~

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java file 进度条 文件上传
java  file 进度条     public class MyProgressListener implements ProgressListener { private HttpSession session; public MyProgressLis...
626 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10052 0
阿里云OSS对象存储服务上传失败问题之一
OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的
50 0
Java上传csv文件踩坑记
## 前言 最近在做交通优化分析工具的产品时,有一个需求是用户上传一份包含路段信息的csv文件,后端需要解析csv的文件内容并将信息插入数据库中。这是一个常规的操作,也不复杂,但是在实现的过程中却踩到了一个utf-8 BOM的坑,随手记录一下。 ## 实现方式 完整的实现方式如下: 1. 在spring中通过`MultipartFile file`这个对象来接受前端传过来的文件
3579 0
Hex
阿里云 OSS 一站式前端资源上传工具
Resource Uploader 一站式前端资源 CDN 上传工具(使用阿里云 OSS) 安装 npm install -g resource-uploader 特性 支持 ES6/7/8 转译 ES5 支持 Javascript 压缩和优化 支持 Sass/Less 转 CSS 支持 CSS...
3263 0
Java 文件上传下载管理器(控制台)
Java 文件上传下载管理器(控制台)
2737 0
日志上云利器 - Aliyun LOG Java Producer
日志无处不在,它作为记录世间万物变化的载体,在运维、研发、运营、安全、BI、审计等领域有着广泛的应用场景。阿里云日志服务是日志类数据的一站式服务平台,其核心组件 LogHub 凭借着高吞吐、低延迟、可自动伸缩等特性,逐渐成为大数据处理领域特别是实时数据处理场景下的基础设施。
6595 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13865 0
Java文件上传实例并解决跨域问题
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传功能的实现。
77 0
+关注
wgwxf
一直是学生
2
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载