Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >移动云存储上传文件

移动云存储上传文件

作者头像
阿超
发布于 2022-08-16 11:09:27
发布于 2022-08-16 11:09:27
7.7K00
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

生命很快就过去了,一个时机从不会出现两次。必须当机立断,不然就永远别要。——罗曼·罗兰

首先打开官方文档

下载下方的开发包

期间我们可以去注册并配置,注意需要配置实名认证。。。

下面的步骤可以看快速入门

然后根据这篇博客jar包引入maven项目

最后是代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.ruben.utils;

import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;
import java.util.UUID;

/**
 * @author <achao1441470436@gmail.com>
 * @className MoveyunUtils
 * @date 2021/3/2 0002 15:26
 * @description 移动云工具类
 */
public class MoveyunUtils {

    /**
     * 移动云上传文件
     *
     * @param fileName
     * @return filePath
     * @methodName upload
     * @date 2021/3/2 0002 16:07
     * @author <achao1441470436@gmail.com>
     */
    public static String upload(MultipartFile file, String fileName) throws IOException {
        InputStream inputStream = file.getInputStream();
        String filePath = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "/" + UUID.randomUUID() + "/" + fileName;
        ClientConfiguration opts = new ClientConfiguration();
        opts.setSignerOverride("S3SignerType");
        AWSCredentials credentials = new BasicAWSCredentials("<accessKey>", "<secretKey>");
        AmazonS3Client client = new AmazonS3Client(credentials, opts);
        client.setEndpoint("<hostName>");
        //设置为公共读
        client.setBucketAcl("<bucketName>", CannedAccessControlList.PublicRead);
        ObjectMetadata meta = new ObjectMetadata();
        meta.setContentLength(file.getSize());
        client.putObject("<bucketName>", filePath, inputStream, meta);
        client.setObjectAcl("<bucketName>", filePath, CannedAccessControlList.PublicRead);
        GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest("<bucketName>", filePath);
        URL url = client.generatePresignedUrl(request);
        filePath = url.getHost() + url.getPath();
        return filePath;
    }

}

上面的代码可以支持最高5G的文件上传并返回文件路径,这里对对文件名做了些处理

首先是LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))生成的日期

作为控制台目录查看时,能根据日期分目录

然后是使用了UUID.randomUUID()作为二级目录,这样就可以保留我们原有的文件名

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯云对象存储
  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
别团等shy哥发育
2023/02/25
59.4K2
腾讯云对象存储
实现标准S3协议的附件上传
S3是Simple Storage Service的缩写,即简单存储服务。亚马逊的名词缩写也都遵循这个习惯,例如Elastic Compute Cloud缩写为EC2等等。
西门呀在吹雪
2021/10/30
3K0
实现标准S3协议的附件上传
对象存储OSS
概述 一、定期启动腾讯云服务备份数据(自己服务备份) FileController package com.qf.push.oss; import com.alibaba.fastjson.JSON
2021/01/20
38.8K1
模拟slf4j+logback输出的日志
宿命论是那些缺乏意志力的弱者的借口。——罗曼·罗兰 实现 package com.ruben.utils; import lombok.extern.slf4j.Slf4j; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter
阿超
2022/08/16
3130
模拟slf4j+logback输出的日志
redis队列
首先是配置类 分为Redis配置类和Jackson配置类,主要是用于收发消息时序列化 Jackson的 package com.ruben.config; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import org.springframework.context.ann
阿超
2022/08/21
2920
redis队列
通过S3协议实现通用的文件存储服务中间件
在日常开发文件上传相关服务时,通常都会选择腾讯云,阿里云,七牛云等提供的oss服务作为文件存储系统,如果需要自行搭建文件存储系统,通常则会采用minio等开源项目。
大忽悠爱学习
2022/09/28
5.9K0
通过S3协议实现通用的文件存储服务中间件
这才是企业级的oss-spring-boot-starter,开箱即用!
本文主要讲解企业级OSS对象存储服务Spring Boot Starter制作,开箱即用,为项目进行赋能。基于AmazonS3协议,适配市面上的对象存储服务如:阿里云OSS、腾讯COS、七牛云OSS、MInio等等 什么是OSS? OSS(Object Storage Service),对象存储服务,对象存储服务是一种使用HTTP API存储和检索对象的工具。就是将系统所要用的文件上传到云硬盘上,该云硬盘提供了文件下载、上传、预览等一系列服务,具备版本,权限控制能力,具备数据生命周期管理能力这样的服务以及技术可以统称为OSS OSS在项目中的使用 OSS对象存储在目前大部分项目中必不可少的存在,如下图所示。
民工哥
2024/04/02
5200
这才是企业级的oss-spring-boot-starter,开箱即用!
jquery和springBoot文件上传
完整源码:https://gitee.com/VampireAchao/simple-scaffold.git
阿超
2022/08/17
1.1K0
jquery和springBoot文件上传
spire.doc渲染pdf时富文本处理
使用spire.doc渲染富文本的话,可以使用Paragraph中的appendHTML()函数去渲染富文本,例如下面
阿超
2022/08/16
6540
spire.doc渲染pdf时富文本处理
AWS S3 学习小结
1.首先,这个是AWS的开发资源使用文档:AWS开发文档,AWS官网 – S3教程
全栈程序员站长
2022/11/03
1.9K0
全局日期请求转换处理
使用@InitBinder注解以及Jackson2ObjectMapperBuilderCustomizer
阿超
2022/08/16
7030
全局日期请求转换处理
spring整合s3实现文件上传下载
pom依赖 <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.11.803</version> </
高大北
2022/10/31
1.9K0
s3 aws 临时授权
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/AuthUsingTempSessionToken.html
周杰伦本人
2022/10/25
1.3K0
Java 中使用 Jersey 实现上传文件(附加密和解密)
Jersey 是开源的 RESTful 框架,实现了 JAX-RS 规范,提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发,与 Struts 类似,它同样可以和 Hibernate、Spring 框架整合。此处使用它实现文件上传功能。
全栈程序员站长
2022/07/18
1.3K0
还在用SimpleDateFormat?Java8都发布N年了,转LocalDateTime吧
Java8发布,已有数年之久,但是发现很多人都还是坚持着用SimpleDateFormat和Date进行时间操作。SimpleDateFormat这个类不是线程安全的,在使用的时候稍不注意,就会产生致命的问题。Date这个类,是可以重新设置时间的,这对于一些类内部的属性来说,是非常不安全的。
Happyjava
2024/02/02
1540
还在用SimpleDateFormat?Java8都发布N年了,转LocalDateTime吧
springboot整合minio+vue实现大文件分片上传,断点续传(复制可用,包含minio工具类)
一只牛博
2025/05/31
2190
springboot整合minio+vue实现大文件分片上传,断点续传(复制可用,包含minio工具类)
springboot,get传日期格式转换
男女双方愿意相互观察是爱情的第一征象——瓦西列 对于这种请求: http://api.achao.cn/example?date=2022-11-09 我们可以配置转换器,mvc则会自动帮我们转
阿超
2022/11/16
9380
AI实现代码转换,Python转Java,Java转Go不再困难?
今天看到个有趣的网站,给大家分享一下。 该网站的功能很神奇,可以实现编程语言的转化。 感觉在一些场景之下还是有点作用的,比如你原来跟我一样是做Java的,因为工作需要突然转Go。这个时候用你Java的经验 + 这个工具,或许可以起到一定的帮助作用。 工具的使用很简单,只需要在左侧黏贴你想转换的原始代码,然后点击CONVERT CODE,右侧输入框就会转换成目标代码: 是不是很神奇?关注公众号“程序猿DD”,回复“代码转换”获取网站地址,一起来试试看吧! 也许你跟我一样,觉得只能实现这样简单的代码转换
程序猿DD
2023/04/24
6240
AI实现代码转换,Python转Java,Java转Go不再困难?
Spring Boot整合MinIO实现文件上传和下载
家人们啦!,上篇文章了,我们讲了如何使用docker-compose快速部署MinIO,在今天的文章中,我将向大家介绍如何将Spring Boot与MinIO进行无缝整合,以便高效地管理和操作文件存储。通过这个整合,你将能够轻松地在Spring Boot应用程序中实现文件的上传和下载等功能。让我们开始吧
修己xj
2023/08/25
1.1K0
Spring Boot整合MinIO实现文件上传和下载
Java8 Date Time 使用案例
对日期及时间的处理,我们都不陌生,但是总会有你不熟悉的新需求产生,毕竟产品经理的奇思妙想是很多的.
呼延十
2019/06/26
7400
推荐阅读
相关推荐
腾讯云对象存储
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验