阿里云oss使用教程(阿里云oss403)

day06项目【整合阿里云OSS和Excel导入分类】

为了解决海量数据存储与弹性扩容,项目中我们采用云存储的解决方案- 阿里云OSS。  

1、开通“对象存储OSS”服务

(1)申请阿里云账号

(2)实名认证

(3)开通“对象存储OSS”服务

(4)进入管理控制台

2、创建Bucket

选择:标准存储、公共读、不开通

3、上传默认头像

创建文件夹avatar,上传默认的用户头像

1、在service模块下创建子模块service-oss

2、配置pom.xml

service-oss上级模块service已经引入service的公共依赖,所以service-oss模块只需引入阿里云oss相关依赖即可,

service父模块已经引入了service-base模块,所以Swagger相关默认已经引入

3、配置application.properties

4、logback-spring.xml

5、创建启动类

创建OssApplication.java

6、启动项目

报错 :

spring boot 会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这个类,

而DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean,又因为项目(oss模块)中并没有关于dataSource相关的配置信息,所以当spring创建dataSource bean时因缺少相关的信息就会报错。

即可成功:

1、从配置文件读取常量

创建常量读取工具类:ConstantPropertiesUtil.java

使用@Value读取application.properties里的配置内容

用spring的 InitializingBean 的 afterPropertiesSet 来初始化配置信息,这个方法将在所有的属性被初始化后调用。

2、文件上传

创建Service接口:uploadFileAvatar.java

实现:OssServiceImpl.java

参考SDK中的:Java-上传文件-简单上传-流式上传-上传文件流

3、控制层

创建controller:FileUploadController.java

4、重启oss服务

5、Swagger中测试文件上传

解决上传文件覆盖问题:

测试:

6、配置nginx反向代理

配置nginx实现请求转发的功能:

验证:

1、复制头像上传组件

从vue-element-admin复制组件:

vue-element-admin/src/components/ImageCropper

vue-element-admin/src/components/PanThumb

2、前端参考实现

src/views/components-demo/avatarUpload.vue

3、前端添加文件上传组件

src/views/edu/teacher/save.vue

template:

引入组件模块:

4、设置默认头像(也可不设置)

onfig/dev.env.js中添加阿里云oss bucket地址

组件中初始化头像默认地址

5、js脚本实现上传和图片回显

二、测试文件上传

前后端联调

1、数据导入:减轻录入工作量

2、数据导出:统计信息归档

3、数据传输:异构系统之间数据传输

1、EasyExcel特点

    Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。

    EasyExcel是阿里巴巴开源的一个excel处理框架, 以使用简单、节省内存著称 。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。

    EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。

1、创建一个普通的maven项目

项目名:excel-easydemo

2、pom中引入xml相关依赖

3、创建实体类

设置表头和添加的数据字段

4 、实现写操作

TestEasyExcel.java

(1)创建方法循环设置要添加到Excel的数据

(2)实现最终的添加操作(写法一)

(3)实现最终的添加操作(写法二)

public static void main(String[] args) throws Exception {

         // 写法2,方法二需要手动关闭流

        //实现excel写的操作

        //1 设置写入文件夹地址和excel文件名称

        String filename = \"F:\\\\write.xlsx\";

        ExcelWriter excelWriter=EasyExcel.write(fileName,DemoData.class).build();

        WriteSheet writeSheet=EasyExcel.writerSheet(\"写入方法二\").build();

        excelWriter.write(data(),writeSheet);

        /// 千万别忘记finish 会帮忙关闭流

        excelWriter.finish();

    }

1、创建实体类

2、创建读取操作的监听器

3、调用实现最终的读取

public class TestEasyExcel {

    public static void main(String[] args) {

        //实现excel读操作

         // 写法1:

        String filename = \"F:\\\\write.xlsx\";

        // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭

        EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet().doRead();

         // 写法2:

          InputStream in = new BufferedInputStream(new FileInputStream(\"F:\\\\01.xlsx\"));

        ExcelReader excelReader = EasyExcel.read(in, DemoData.class, new ExcelListener()).build();

        ReadSheet readSheet = EasyExcel.readSheet(0).build();

        excelReader.read(readSheet);

        // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的

        excelReader.finish();

    }

1、编辑Excel模板

2、将文件上传至阿里云OSS

1、添加路由

2、添加vue组件

1、js定义数据

2、template

3、js上传方法

4、回调函数

1、service-edu模块配置依赖

1、EduSubjectController

2、创建和Excel对应的实体类

3、EduSubjectService

(1)接口

(2)实现类

4、创建读取Excel监听器

1、参考 views/tree/index.vue

2、创建api

api/edu/subject.js

3、list.vue

1、创建vo

2、创建controller

Joplin利用阿里云对象存储(OSS)进行同步操作

目前刚用Joplin没多久,然后发现这个软件的同步操作默认是用dropbox的,但我又没用过dropbox,然后网上好像说这个用起来还有些限制之类的,然后常用的百度网盘之类的又不支持Joplin的同步,后面在网上看到一篇 Joplin使用腾讯云对象存储(COS)进行同步 的文章,然后想到落灰很久的阿里云,上去自己捣鼓了一下,发现也是可以用阿里云的对象存储来做同步的,具体操作还看了下 这篇文章 阿里云oss对象存储访问的使用

具体的一些介绍和收费情况可以自己上官网去看一下,我是买了个资源包然后好像是可以抵扣费用之类的,反正看着挺便宜的,其实具体是怎么计费的也不是很清楚

创建完后,就会有一条Bucket记录了

创建完后就能看到创建的子账号了,然后我们需要进入用户信息界面,创建AccessKey,这个到时候需要填到joplin的同步设置里面,创建的时候会弹框现实AccessKey和AccessKey Secret,记得保存好AccessKey Secret,不然后面只能重新创建了

创建好AccessKey后 ,就需要对Buccket进行设置,让刚刚创建的子账号能操作Buccket

我目前用的joplin是2.7.13版本,在joplin的“工具”菜单下拉选项中,有个“选项”菜单,点击后,就进入下面页面。其中同步目标选择 S3 (Beta), 存储桶名称就填创建的Bucket的名称,然后下面是S3 URL和S3地区两个选项,需要根据你创建Bucket时选择的地区,然后去 对象存储文档 中的“访问域名和数据中心”内容里面找你选择的地区,就能看到对应的内容了。然后S3访问密匙就是刚刚创建的用户AccessKey,S3密匙就是 AccessKey Secret,都填上后检查同步配置按钮,成功的话就算是配置好了

小白使用阿里云的oss实现文件云存储

项目需要上传头像,不想存在本地,之前用过阿里云其他产品,这里就使用一下阿里云的oss了,不得不说阿里云的产品使用步骤真的很清晰.这里说一下我自己的使用步骤.

选择对象存储oss,进行开通

开通不要钱,有一定免费额度

权限可以设置为公共读

其实也就是两步

1.引pom

2.复制黏贴大法

由于阿里云一些密钥配置和地域结点,bucket等是常量级的,所以我这里抽取出来放在了application.properties中, 方便管理 ,数据我手动加密了....大家换成自己的即可,

这些配置key=value key都是自己随便写的(也不是,起码可以见名思意),只是为了我们配置的一个配置类可以利用spring的依赖注入填充value而已

说明:

说明:

我们阿里云oss仓库的url是一个咱们的仓库+固定的地域结点值+咱们的文件名字,所以这里为了使上传的文件名字不重复,使用了一个idworker,不知道的可以看一下 Twitter的 Snowflake(雪花算法)

大家搭建完了可以用postman测试一下

ps:如果我们想方便管理或者后期扩展,我们这里也可以引入一个工具

我们可以用这个工具的一个方法String dirpath=new DateTime().tostring(\"yyyy/MM/dd\");将当前的时间转换为yyyy/MM/dd的格式,比如2020/02/03

这样我们上传的文件名字时候可以以这个dirpath作为我们的图片所在的文件夹名称,以分布式id生成器生成的id为名称存储.

下面看一下效果

新手求问 阿里云OSS如何使用

阿里云oss用于单一文件的存储和腾讯云COS属于对标产品 特点是容量无上限, 且费用相对低廉。

简单用法是通过控制台进行单一文件的上传操作,一般用于web站点的静态资源

可以用来做简单的静态网站。

如何快速安装OSSFTP工具?阿里云OSS FTP安装图文详细教程

OSSFTP工具是一个特殊FTPserver,它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。

注意生产环境请使用osssdk,OSSFTP工具主要面向个人用户使用。

主要特性

跨平台:

无论是Windows、Linux还是Mac,无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。

免安装:

解压后可直接运行。

免设置:

无需设置即可运行。

透明化:

FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。

主要功能

支持文件和文件夹的上传、下载、删除等操作。

通过Multipart方式,分片上传大文件。

支持大部分FTP指令,可以满足日常FTP的使用需求。

注意

1.目前在1.0版本中,考虑到安装部署的简便,OSSFTP工具没有支持TLS加密。由于FTP协议是明文传输的,

为了防止您的密码泄漏,建议将FTPserver和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。

2.不支持rename和move操作。

3.安装包解压后的路径不要含有中文。

4.FTPserver的管理控制页面在低版本的IE中可能打不开。

5.FTPserver支持的Python版本:Python2.6,Python2.7。

下载

由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。

由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python,只包含了相关依赖库。

运行

首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。

Windows:双击运行start.vbs即可

Linux:打开终端,运行 i.$bashstart.sh

Mac:双击start.command,或者在终端运行 i.$bashstart.command

上述步骤会启动一个FTPserver,默认监听在127.0.0.1的2048端口。同时,为了方便您对FTPserver的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,

如下所示:

大部分情况不要任何配置,就可以运行一个FTPserver了,如果想对FTPserver进行配置,请注意需要重启才能生效。

连接到FTPserver推荐使用FileZilla客户端去连接FTPserver。

下载安装后,按如下方式连接即可:

主机:127.0.0.1

登录类型:正常

用户:access_key_id/bucket_name

密码:access_key_secret

注意:

用户中,/是必须的,如用户

tSxyiUM3NKswPMEp/test-hz-jh-002。

-access_key_id和access_key_secret的获取

高级使用

通过控制页面管理FTPserver

修改监听地址

如果需要通过网络来访问FTPserver,那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。

修改监听端口

修改FTPserver监听的端口,建议端口大于1024,因为监听1024以下的端口时需要管理员权限.

修改日志等级

设置FTPserver的日志级别。FTPserver的日志会输出到data/ossftp/目录下,可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO,打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。

设置Bucketendpoints

FTPserver默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTPserver会优先尝试内网访问oss。如果您设置了bucketendpoints,如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com,那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。

注意

所有修改都需要重启才能生效。

上述的所有修改其实都是修改的ftp根目录下的config.json,所以您可以直接修改该文件。

直接启动FTPserver(Linux/Mac)

可以直接启动ossftp目录下的ftpserver.py,免去web_server的开销。

1.python ossftp/ftpserver.py  

配置修改方式同上。

可能遇到的问题

如果连接FTPserver时,遇到以下错误:

有两种可能:

输入的access_key_id和access_key_secret有误。

解决 :请输入正确的信息后再重试。

所用的access_key信息为ram子账户的access_key,而子账户不具有Listbuckets权限。

解决 :当使用子账户访问时,请在控制页面中指定bucketendpoints,即告诉FTPserver某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制。

只读访问

OSSFTP工具需要的权限列表为ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。

上传文件

如果允许ram子账户上传文件,还需要PutObject。

删除文件

如果允许ram子账户删除文件,还需要DeleteObject。

如果您在Linux下运行FTPserver,然后用FileZilla连接时遇到如下错误:

501 can\'t decode path (server filesystem encoding is ANSI_X3.4-1968)

一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。

1 .$ export LC_ALL=en_US.UTF-8; export LANG=\"en_US.UTF-8\"; locale

使用阿里云OSS部署静态网站

参考:

阿里云OSS(Object Storage Service)是一个对象存储服务,可以用来存储图片、音频、视频等各种类型文件,也可以存储HTML格式文件。OSS允许配置访问域名和设置静态入口页,可以 用来部署一个简单的静态网站。

步骤1:创建Bucket

您需要创建一个公共读的Bucket,用以设置静态网站托管及存放网站数据。

步骤2:创建网页文件并上传

您需要创建静态网站首页和404错误页面的网页文件,并上传至目标Bucket。

步骤3:配置静态网站托管

步骤4:绑定自定义域名

现在,您已有了根域名example.com和名为examplebucket的Bucket,接下来您需要将域名绑定到Bucket,以便能够使用您的域名访问Bucket。

步骤5:测试网站

在浏览器中访问以下URL以验证网站是否正常运行:

未经允许不得转载:便宜VPS网 » 阿里云oss使用教程(阿里云oss403)