Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >OSS简单文件上传工具类

OSS简单文件上传工具类

作者头像
用户9006224
发布于 2022-12-21 01:23:46
发布于 2022-12-21 01:23:46
11.3K0
举报
文章被收录于专栏:cjz的专栏cjz的专栏

导包

代码语言:javascript
AI代码解释
复制
   <dependency>
       <groupId>com.aliyun.oss</groupId>
       <artifactId>aliyun-sdk-oss</artifactId>
       <version>3.10.2</version>
   </dependency>

工具类代码:

  • 输入要上传的文件地址,返回上传后的地址
  • 上传任意文件
代码语言:javascript
AI代码解释
复制
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

/**
 * --常家壮
 * --2020年9月24日
 *
 *  阿里云OSS 文件简单上传,不检测文件后缀名,可上传任意文件类型
 * 输入要上传的文件地址,返回上传后的地址
 * 使用文件上传模式
 * 版本:0.3
 * ----------------------Maven坐标-------------------------
   <dependency>
       <groupId>com.aliyun.oss</groupId>
       <artifactId>aliyun-sdk-oss</artifactId>
       <version>3.10.2</version>
   </dependency>
 */
public class OssUtils {

    /**
     * 上传返回路径
     */
    public static String getFileUrl(String url){
        //文件流
        File file = new File(url);
     // Endpoint以杭州为例,其它Region请按实际情况填写,看看自己的Endpoint(地域节点)
        String endpoint = "http://oss-cn-beijing.aliyuncs.com";
    // 阿里云主账号AccessKey拥有所有API的访问权限
        String accessKeyId = "你的accessKeyId ";
        String accessKeySecret = "你的accessKeySecret ";

    // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        /*
            创建PutObjectRequest对象。
            <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
            filePath:生成路径
        */
        String filePath = getFilePath(file.getName());
        PutObjectRequest putObjectRequest = new PutObjectRequest("你的Bucket 名称", filePath,file);


        // 上传文件。
        ossClient.putObject(putObjectRequest);

        // 关闭OSSClient。
        ossClient.shutdown();

        //返回地址
        return "https://你的Bucket域名/"+filePath;
    }

    /**
     * 删除文件
     * @param url
     */
    public static  void delete(String url){
        new File(url).delete();
    }

    /**
     * 定义一个类 用于生成上传文件名称
     */
    private static String getFilePath(String sourceFileName) {
        DateTime dateTime = new DateTime();
        return "file/" + dateTime.toString("yyyy")
                + "/" + dateTime.toString("MM") + "/"
                + dateTime.toString("dd") + "/" + System.currentTimeMillis() +
                RandomUtils.nextInt(100, 9999) + "." +
                StringUtils.substringAfterLast(sourceFileName, ".");
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【VIDEO_Parent】-创作者前端-腾讯云对象存储
地址:对象存储 快速入门-SDK 文档-文档中心-腾讯云 (tencent.com)
程序员NEO
2023/11/30
4011
【VIDEO_Parent】-创作者前端-腾讯云对象存储
对象存储OSS
概述 一、定期启动腾讯云服务备份数据(自己服务备份) FileController package com.qf.push.oss; import com.alibaba.fastjson.JSON
2021/01/20
40.3K1
"图像瘦身术":Java借助Tinify轻松将4M图片压缩至1M
在当今的数字化时代,图片已成为网站、应用和社交媒体中不可或缺的元素。然而,大尺寸的图片不仅会增加页面或者客户端加载时间,还会占用大量的存储空间。为了解决这个问题,可以使用图片压缩工具来减小图片的尺寸,然后再将压缩后的图片上传至对象存储服务(如阿里云OSS)。本文将详细介绍如何利用Tinify压缩图片,并将其上传至OSS,重点介绍图片压缩实现方式。
小明爱吃火锅
2024/09/23
1K0
Spring mvc+oss存储+fileupload多文件上传实现SSO单点登录模板管理
之前给大家介绍了sso的相关知识点和集成方案,考虑到每个系统所属行业的不同,这边针对于不同行业做了一些统一的sso单点登录界面模板,使用fileupload多文件上传+OSS阿里云存储方案。
用户7788846
2020/11/27
1.8K0
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
2.1K0
基于OSS服务器的文件上传以及文件下载
Hello,今天想跟大家分享一下我近期做的项目中使用的文件上传与文件下载,其实在以前我们想要做文件上传可能要自己去搭建一个专门的服务器,然后将我们的文件上传到这个服务器上,下载就从我们这个服务器上去进行下载就行了。
一个程序员的成长
2020/11/25
8.3K0
基于OSS服务器的文件上传以及文件下载
Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能
之前后端服务的启动端口设置为9000,而现在将其修改为9999。为什么会做出这样的修改呢?这主要是由于在进行minio整合工作的时候,发现后端原本使用的9000端口与minio存储服务的端口产生了冲突。在这种情况下,为了确保整个项目的顺利运行(也方便大家在整合minio做出不必要的麻烦),经过权衡,只能做出调整,让出原本使用的端口,将后端服务的启动端口修改为9999。
Harry技术
2025/01/13
3330
Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能
通过S3协议实现通用的文件存储服务中间件
在日常开发文件上传相关服务时,通常都会选择腾讯云,阿里云,七牛云等提供的oss服务作为文件存储系统,如果需要自行搭建文件存储系统,通常则会采用minio等开源项目。
大忽悠爱学习
2022/09/28
6.3K0
通过S3协议实现通用的文件存储服务中间件
信创文件适配技术方案
当前的代码中,业务平台采用的是OSS,公有云版本的对象存储,如果做私有化交互,客户可能是在私网中,无法访问OSS或者指定使用别的厂商的对象存储,需要有平替的方案。
李福春
2025/10/28
1110
信创文件适配技术方案
Springboot 一行代码实现文件上传 20个平台!少写代码到极致
又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴们也分享一下,demo地址放在文末了。
程序员小富
2022/10/25
1.4K0
Springboot 一行代码实现文件上传 20个平台!少写代码到极致
【Spring Boot 20,孙鑫Java视频教程百度网盘
这里需要注意的是 aliyun-java-sdk-vod 飘红问题,aliyun-java-sdk-vod 没有开源,所以不能直接在pom文件中直接引用依赖。
全栈程序员站长
2022/08/30
1K0
【Spring Boot 20,孙鑫Java视频教程百度网盘
Flink自定义OSS的Sink
基于上篇说明的OSS异常内容和功能弱的缘故,考虑自定义Sink处理的方式。主要关注点是文件命名的动态化和高效批写入。
礼兴
2021/06/11
5.9K1
文件上传到oss代码片段
import axios from '@/global/axios.js' let expire = 0 let accessKeyId let policy let signature let host let callback // 获取policy function getPolicy (file, filePath, changeSize, callbackImg) { // 可以判断当前expire是否超过了当前时间,如果超过了当前时间,就重新取一下.3s 做为缓冲 let n
山河木马
2019/03/05
25.4K1
文件访问路径规则 BucketName.Endpoint/ObjectName
@ConditionalOnMissingBean//保证spring容器只有一个AliOssUtil对象
用户7737280
2024/08/24
2990
python 上传下载 OSS 文件
实现的功能很简单,先设置好云的 AccessKeyId 和 AccessKeySecret ,然后设置你所访问的 bucket 所在的区的链接和你所需要访问的 bucket 的名称。之后就可以在 linux 终端上访问
周小董
2019/03/25
8.2K0
一文带你看懂 前后端之间图片的上传与回显
上传文件需要发送请求。在这些请求中,浏览器将数据拆分为小的“块”,然后通过连接逐个发送这些块。这是必要的,因为文件可能过大而无法一次性发送作为一个庞大的有效负载。
用户10143704
2024/03/22
3.7K0
Dubbo + RestEasy 实现文件上传与下载
原文链接:https://blog.csdn.net/weixin_43057263/article/details/83187030
微风-- 轻许--
2019/09/25
2.1K0
在set中已经 存在,返回<x在set中的位置,false>
int array[] = { 2, 1, 3, 9, 6, 0, 5, 8, 4, 7 };
用户7737280
2024/08/24
6760
PHP-常用方法
文件上传 $name = "picture"//文件名 $f_type = ".png"//文件类型 $tmp = $_FILES['file']['tmp_name']; $filepath = 'file/document/';//上传的路径 if(move_uploaded_file($tmp,$filepath.$name.$f_type)){ echo "上传成功"; }else{ echo "上传失败"; } 统计目录下文件数 $folderPath = "file/docume
偏有宸机
2020/11/04
1.7K0
Java程序员不缺对象,缺的是对象存储
文件服务器是一个应用必要的组件之一。最早我搞过FTP,然后又用过FastDFS,接私活的时候我用MongoDB也凑合凑合。现如今时代不同了,开始流行起了OSS。
码农小胖哥
2020/08/26
1.1K0
Java程序员不缺对象,缺的是对象存储
推荐阅读
相关推荐
【VIDEO_Parent】-创作者前端-腾讯云对象存储
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
首页
学习
活动
专区
圈层
工具
MCP广场
首页
学习
活动
专区
圈层
工具
MCP广场