基于阿里云的OSS文件上传和下载

50 篇文章 1 订阅
订阅专栏

OSS概述

OSS是基于阿里云的一个云平台文件保存的系统,我们可以将服务器的文件上传至云端从而减轻服务器的压力。

初体验

  1. 首先创建一个bucket (给你的云储存器配置名字等基本信息)
    在这里插入图片描述
    在这里插入图片描述
  2. 生成AssessKey (创建密钥等信息)
    在这里插入图片描述
    在这里插入图片描述
  3. 导入依赖文件
	<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>3.10.2</version>
		</dependency>
  1. 编写工具类 OSSUtil.class
package com.hopu.edu_demo.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSBuilder;
import com.aliyun.oss.OSSClientBuilder;

import java.io.InputStream;
import java.net.URL;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

/**
 * OSS文件上传工具类
 */
public class OSSUtil {

    // Endpoint以杭州为例,其它Region请按实际情况填写。
    private static String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
    private static String accessKeyId = "xxx";//
    private static String accessKeySecret = "xxx";
    private static String bucketName = "xxx";
    //目录名
    public static String dir = "image/";

    /**
     * 文件上传
     * @param inputStream
     * @param fileName
     */
    public static void upload(InputStream inputStream, String fileName){
        OSS oss = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        oss.putObject(bucketName,dir + fileName,inputStream);
        oss.shutdown();
    }

    /**
     * 获得文件URL
     * @param fileName
     * @return
     */
    public static String getURL(String fileName){
        OSS oss = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        //设置过期时间
        LocalDateTime time = LocalDateTime.now().plusDays(100);
        Date expiration = Date.from(time.atZone( ZoneId.systemDefault()).toInstant());
        URL url = oss.generatePresignedUrl(bucketName, dir + fileName, expiration);
        oss.shutdown();
        return url.toString();
    }
}

  1. 编写控制层
package com.hopu.edu_demo.controller;


import com.hopu.edu_demo.util.OSSUtil;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;

@RestController
public class UploadController {

    @PostMapping("/upload")
    public ResponseEntity<String> upload(MultipartFile file) throws IOException {
        InputStream inputStream = file.getInputStream();
        String filename = file.getOriginalFilename();
        OSSUtil.upload(inputStream,filename);
        String url = OSSUtil.getURL(filename);
        return ResponseEntity.ok(url);
    }
}

  1. 前端页面 (测试成果)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">

    <style>
        .avatar-uploader .el-upload {
            border: 1px dashed #d9d9d9;
            border-radius: 6px;
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }
        .avatar-uploader .el-upload:hover {
            border-color: #409EFF;
        }
        .avatar-uploader-icon {
            font-size: 28px;
            color: #8c939d;
            width: 178px;
            height: 178px;
            line-height: 178px;
            text-align: center;
        }
        .avatar {
            width: 178px;
            height: 178px;
            display: block;
        }
    </style>
</head>
<body>
<div id="app">
    <el-upload
            class="avatar-uploader"
            action="http://localhost:8888/upload"
            :show-file-list="false"
            :on-success="handleAvatarSuccess"
            :before-upload="beforeAvatarUpload">
        <img v-if="imageUrl" :src="imageUrl" class="avatar">
        <i v-else class="el-icon-plus avatar-uploader-icon"></i>
    </el-upload>
</div>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
    new Vue( {
        el:"#app",
        data() {
            return {
                imageUrl: ''
            };
        },
        methods: {
            handleAvatarSuccess(res, file) {
                this.imageUrl = URL.createObjectURL(file.raw);
            },
            beforeAvatarUpload(file) {
                const isJPG = file.type === 'image/jpeg';
                const isLt2M = file.size / 1024 / 1024 < 2;

                if (!isJPG) {
                    this.$message.error('上传头像图片只能是 JPG 格式!');
                }
                if (!isLt2M) {
                    this.$message.error('上传头像图片大小不能超过 2MB!');
                }
                return isJPG && isLt2M;
            }
        }
    });
</script>
</body>
</html>

效果展示

在这里插入图片描述
在这里插入图片描述
现在到我们的云平台的文件夹中就可以看见我们上传到云端的图片了,是不是相较于传统的文件上传下载的方式比起来十分的方便!

JAVA-阿里云OSS文件下载并将文件压缩为ZIP格式保存-附件资源
03-02
JAVA-阿里云OSS文件下载并将文件压缩为ZIP格式保存-附件资源
阿里云oss web上传demo.rar
08-17
3. **后端处理**:接收到文件数据后,服务器端需要进行鉴权、签名等操作,这些操作通常基于阿里云OSS的SDK。鉴权是为了验证请求的合法性,签名则是为了保证数据传输的安全性。阿里云OSS的SDK会自动生成必要的签名...
阿里云OSS文件上传下载完整指南
weixin_74268571的博客
05-27 6438
阿里云OSS上传与下载详细说明
OSS文件上传--保姆级教程
最新发布
2301_76400852的博客
08-28 1201
1.注册阿里云账号(以有阿里云账号可忽略此步骤!打开阿里云官网:https://www.aliyun.com/三、前期准备工作1.阿里云实名验证注意:完成阿里云实名验证(此步骤必做!不然无法开通OSS服务!1、登录阿里云账号后点击控制台:2、点击头像--->点击实名验证---->选择个人验证------>支付宝登录授权即可完成实名验证!开通OSS服务点击立即开通即可!3.创建Bucket存储空间开通服务后,在OSS产品详情页面单击管理控制台直接进入OSS管理控制台界面。
阿里OSS上传下载
记录点点滴滴的成长。
11-24 399
最近工作中,遇到了一个业务,需要将本地的excel上传到阿里云作为模板,下载模板的时候从阿里云下载要求用流的形式。
阿里云OSS文件上传下载【专栏】------文件下载(二)
dmjxsy的博客
09-13 2423
下载大文件时,如果网络不稳定或者程序异常退出,会导致下载失败,甚至重试多次仍无法完成下载。为此,OSS提供了断点续传下载功能。断点续传下载将需要下载的文件分成若干个分片分别下载,所有分片都下载完成后,将所有分片合并成完整的文件。当下载的文件太大或者一次性下载耗时太长时,您可以通过流式下载,一次处理部分内容,直到完成文件的下载。将存储空间(Bucket)中的文件(Object)下载到本地文件。
阿里云oss上传下载接口(上传接口和下载接口都是临时的)
qq_44835978的博客
08-29 457
下载传接口:objectName与fileUrl一样。
阿里云oss上传可视化工具
03-23
阿里云OSS上传可视化工具是为了方便用户更直观、便捷地管理和操作OSS中的数据而设计的软件或插件。它集成了文件上传下载、预览、删除等基本功能,并且支持对Bucket进行创建、修改、查看等管理操作,极大地简化了...
上传文件到阿里云OSS-uniapp.zip
09-22
本项目“上传文件到阿里云OSS-uniapp.zip”专注于在uni-app平台上实现对阿里云OSS文件上传功能,特别适合于微信小程序和H5应用。 uni-app是一个多端开发框架,允许开发者编写一次代码,部署到多个平台,包括微信...
阿里云OSS上传视频上传图片sdk及样例代码
03-17
在这个场景中,我们将重点关注如何使用阿里云OSS SDK进行视频和图片的上传。 阿里云提供了多种语言的SDK,便于开发者集成到自己的应用中。在给定的文件`VodUploadSDK-PHP_1.0.2`中,我们看到的是PHP版本的SDK,用于...
AliossUploader:layui 阿里云OSS上传插件
06-09
AliossUploader为layui用户提供了方便快捷的阿里云OSS文件上传解决方案,通过简单的配置和调用,即可实现高效稳定的文件上传功能。开发者只需关注业务逻辑,而无需过多关心底层上传的复杂细节,大大提高了开发效率...
阿里云存储OSS简单上传和下载
10-30
简单实现了阿里云存储OSS 里面通过相册选择照片进行上传文件 还有下载文件功能的实现
阿里云oss上传文件以及图片
09-28
解压导入到开发工具即可使用 包括工具类的测试 适合学习 参数设置根据自己的阿里云设置填写
阿里oss存储
06-02
阿里云对象存储OSS--实现随时随地上传文件到阿里云
使用阿里云oss存储来进行项目中文件的上传和下载
handy的博客
09-05 1377
说明: 在开发中,我们不管是企业项目还是单人项目,上传和下载文件总是不可或缺的一部分,我们可以上传到项目中,那又很麻烦,搭建个ftp这种图片服务器也很麻烦, 这个时候使用阿里云oss就很简单了.价格便宜,文档齐全,功能强大,对接起来也极其简单 1:购买(单人开发使用的话40g一月1元) 2:控制台-oss存储--文档 阿里云官方文档 ...
阿里云OSS文件上传下载操作指南
csdn466412618的博客
05-15 1197
阿里云OSS Java SDK使用教程:轻松实现文件上传下载。本文指导开发者配置环境,添加Maven或Gradle依赖,设置OSS访问密钥,演示Java代码上传本地文件至OSS及从OSS下载文件的具体步骤。强调安全保管密钥,处理大文件技巧,如分片上传和CDN加速,确保数据传输高效安全。掌握这些基础操作,提升应用存储能力。
.net core 阿里云接口之将指定的OSS文件下载到流
SunshineGGB的博客
12-24 1430
.net core 阿里云接口之将指定的OSS文件下载到流
PHP实现阿里云OSS云存储
xiaoheiba_的博客
05-01 2047
安装 1,composer安装 composer require aliyuncs/oss-sdk-php 下载完成执行 composer install,安装依赖。 2,通过github下载 GitHub - aliyun/aliyun-oss-php-sdk: Aliyun OSS SDK for PHP 上传 1,PHP代码如下 use OSS\OssClient; use OSS\Core\OssException; public function image()
PHP-阿里云oss使用
weixin_39218464的博客
05-28 4155
为什么要使用第三方存储? 1)静态文件会占用大量带宽; 2)加载速度 3)存储空间 第三方存储有哪些? 1)阿里云oss 2)七牛云 3)又拍云 等等 阿里云OSS的介绍https://www.aliyun.com/product/oss/ 阿里云oss的使用 阿里云oss使用步骤: 1.申请key和secret(把key和secret保存好,项目中配置使用); 2.新建Bucket 3.查看文档(对象存储oss->开发者指南->sdk参考->PHPsdk) composer requir
如何阿里云oss上传和下载文件
07-27
阿里云OSS(对象存储服务)提供了丰富的API和工具,可以方便地实现文件的上传和下载功能。根据提供的引用内容,以下是基于阿里云OSS实现文件上传下载的步骤: 1. 配置OSS服务:在阿里云官网上购买OSS服务,并完成相应的配置。\[1\] 2. 创建Controller层:在Controller层中,使用@RestController注解标记类,并使用@PostMapping注解标记上传文件的接口。在接口方法中,使用@ApiOperation注解添加接口的描述信息,使用@ApiImplicitParam注解指定接口参数。\[2\] 3. 实现上传功能:在Service层中,创建实现上传功能的服务类。在该类中,注入OSSUtils工具类,并实现上传文件的方法。在方法中,首先对文件类型进行检查,然后调用工具类的上传文件方法。\[3\] 4. 实现下载功能:类似地,在Service层中创建实现下载功能的服务类。在该类中,注入OSSUtils工具类,并实现下载文件的方法。在方法中,调用工具类的下载文件方法。 需要注意的是,上传和下载文件时,需要使用阿里云OSS提供的SDK或API进行操作。具体的实现步骤可以参考阿里云的文档,其中包括SDK的引入、配置OSS客户端、创建Bucket等详细步骤。 总结起来,基于阿里云OSS实现文件上传下载的步骤包括:配置OSS服务、创建Controller层、实现上传功能和下载功能,并使用阿里云OSS提供的SDK或API进行操作。 #### 引用[.reference_title] - *1* *2* *3* [在项目中使用阿里云oss实现文件上传功能](https://blog.csdn.net/m0_63445035/article/details/130417961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
写文章

热门文章

  • 基于阿里云的OSS文件上传和下载 5078
  • RabbitMQ实现数据库与ElasticSearch的数据同步 3795
  • Mac系统 PyCharm.app”已损坏,无法打开。 您应该将它移到废纸篓。 2948
  • Azure Cosmos DB小白入门 2345
  • 带你快速入门socket网络编程 2341

分类专栏

  • 笔记 50篇

最新评论

  • 基于阿里云的OSS文件上传和下载

    m0_68975086: 网上试了很多方法都不是行 就你的这个 直接就成功了 不知道为啥

  • 基于阿里云的OSS文件上传和下载

    m0_73137633: 网洛兴国科技领军,转化效率造福人民

  • 基于阿里云的OSS文件上传和下载

    m0_73137633: 学习强国互联互助

  • 多线程的线程安全问题

    Hannya。: 也会的

  • 多线程的线程安全问题

    真独孤求败: 多核cpu下,多线程还是来回切换吗?

最新文章

  • Azure Cosmos DB小白入门
  • Mac系统 PyCharm.app”已损坏,无法打开。 您应该将它移到废纸篓。
  • Java面试题
2022年4篇
2021年54篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家广州能透光玻璃钢雕塑深圳商场美陈策划公司浙江周年庆典商场美陈批发价玻璃钢花盆雕塑定制玻璃钢雕塑免费广东玻璃钢卡通雕塑橘子定制玻璃钢人物雕塑批发代理周口玻璃钢雕塑飞马生产厂防城港玻璃钢商场美陈成都生产玻璃钢面包雕塑巨型玻璃钢雕塑实体工厂毕节玻璃钢雕塑制作厂家郑州锻铜校园玻璃钢景观雕塑七台河沈阳玻璃钢花盆做玻璃钢雕塑报价单玻璃钢雕塑后期维护防城港玻璃钢雕塑作品红色玻璃钢人物雕塑现货广西园林景观玻璃钢雕塑艺术摆件湖南玻璃钢广场雕塑北京装饰商场美陈报价商场售楼处美陈玻璃钢商场美陈椅定制生肖玻璃钢雕塑厂家电话开封动物玻璃钢雕塑洛龙玻璃钢雕塑定制越秀玻璃钢雕塑西安商场美陈报价商场美陈大赛设计宿迁美陈商场规划香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化