开发者社区> wgwxf> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

阿里云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基础知识—2019-7-10)
阿里云基础测试题(Java基础知识—2019-7-10)
0 0
《阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库》电子版地址
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
0 0
【Java】【Maven】002 修改maven仓库的路径与配置阿里云镜像仓库
【Java】【Maven】002 修改maven仓库的路径与配置阿里云镜像仓库
0 0
阿里云体验实验室-3:搭建Java Web开发环境
阿里云体验实验室-3:搭建Java Web开发环境
0 0
阿里云视觉智能开放平台分割抠图分割替换Java调用
输入两种图像,天空替换能力可以将参考图B的天空样式替换到目标图A中,从而改变目标图A的天空样式,实现换天功能
0 0
关于在阿里云esc创建的redis伪集群,java客户端无法连接的解决办法
创建集群的时候 --replicas 后边跟的ip一定要用公网的ip,用内网的ip地址客户端无法连接。 想要利用公网ip创建集群,在阿里的防火墙安全组里边要添加上集群端口。
0 0
阿里云智能语音交互异步长文本语音合成接收回调Java示例
本文详细介绍如何使用异步长文本语音合成接收服务回调数据的Java示例
0 0
阿里云请求签名Java实现
为保证API的安全调用,在调用API时阿里云会对每个API请求通过签名(Signature)进行身份验证。无论使用HTTP还是HTTPS协议提交请求,都需要在请求中包含签名信息。在使用阿里云文字识别ocr时,看到官网提供了Python的构造签名示例,此篇文章就以官网提供的参数以Java方式构造下签名
0 0
阿里云——Java实现手机短信验证码功能
通过手机短信发送验证码,是最普遍、最安全验证用户真实身份的方式。目前,短信验证码广泛应用于用户注册、密码找回、登录保护、身份认证、随机密码、交易确认等应用场景。本文通过调用API开发一个短信验证码为例,带您了解如何实现短信验证码功能。
0 0
+关注
wgwxf
一直是学生
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载