开发者社区> 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();

		}

	}

~~~~

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

相关文章
oss 追加上传支持excel文件使用吗
oss 追加上传支持excel文件使用吗
210 0
oss区分存储怎么把图片压缩后再上传?
oss区分存储怎么把图片压缩后再上传?
326 0
iOS开发:日志记录文件及压缩上传OSS
发现APP上传本地日志文件相当的好用,根据之前研究学习的对这一模块做了一些更具体的优化处理。从标题可以看出,实现这一功能分以下几个步骤: 1、日志记录本地文件 2、日志文件压缩[xx.zip] 3、压缩之后的文件上传 4、压缩文件删除
292 0
OSS 上传出现异常
OSSBrower "no space left on" 分析: 有明显报错信息的先 Google 一下,看看是操作系统错误还是 OSSBrower 抛出,经过鉴定错误是 Linux 系统底层返回,说明当时系统的 OSSBrower 所在的目录磁盘满了,开源的错误到处可以看到,自行解决即可。
2491 0
基于OSS作为存储实现加速访问和加速上传的方案的对比
本文通过实现OSS加速的两种方式CDN加速OSS和OSS传输加速来介绍OSS的加速的实现,两种加速方式的区别以及两种加速模式选择使用的场景;
1640 0
JAVA实现RTMP推流上传阿里云OSS的签名URL
由于目前官方帮助文档提供的示例是Python的,本文介绍如何使用JAVA实现生成LiveChannel的签名URL,包括推流地址和播放地址。
1965 0
【OSS最佳实践】JAVA实现RTMP推流上传OSS的签名URL
背景介绍 OSS支持使用RTMP协议推送H264编码的视频流和AAC编码的音频流到OSS。推送到OSS的音视频数据可以点播播放;在对延迟不敏感的应用场景,也可以做直播用途。RTMP推流上传的流程是创建LiveChannel以后生成推流地址,关于这块的介绍在官方帮助文档里也有介绍,具体可以参考文档"RTMP推流上传"。
1923 0
【OSS对象存储】上传OSS提示callbackfailed问题
针对上传文件到OSS对象存储成功后,OSS返回callbackfailed的场景
5041 0
基于OSS作为存储实现加速访问和加速上传的方案实现
本文通过实现OSS加速的两种方式CDN加速OSS和OSS传输加速来介绍OSS的加速的配置实现方式
5903 0
OSS传输加速商业化,加速云上数据上传、下载访问体验
OSS 传输加速功能迎来商业化,助力客户的业务覆盖更多地域,解决远距离传输性能问题。利用全球分布的云机房能力,OSS传输加速将来自全球各地的用户访问由DNS 路由至就近的OSS接入点,用户请求到达OSS就近节点后,会经过优化过的网络及协议访问Bucket所在的数据中心。
38357 0
+关注
wgwxf
一直是学生
文章
问答
文章排行榜
最热
最新
相关电子书
更多
百问百答-OSS (上)
立即下载
百问百答-OSS (下)
立即下载
阿里云 JindoFS+OSS 数据上云实战
立即下载