当前位置:首页 » 文件管理 » oss上传文件夹

oss上传文件夹

发布时间: 2022-11-29 18:05:35

‘壹’ 小白使用阿里云的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为名称存储.

下面看一下效果

‘贰’ Web直传阿里云OSS服务端临签名总结 2021-01-28

最近公司有新的需求,需要将文件上传到阿里云OSS,目前项目中的文件主要是存储到自己的服务器,这样很容易受服务器带宽、硬件的影响,加上服务器配置不高,应用服务很容易垮掉。之前也用过OSS,但是上传文件都是比较小的10MB以内的文件,采用的是生成数据流的方式。这种情况已经无法满足现在的应用场景,就又熟悉了一下SDK文档,主要的实现方式有:

1、 上传慢。先上传到应用服务器,再上传到OSS,网络传送多了一倍。如果数据直传到OSS,不走应用服务器,速度将大大提升,而且OSS是采用BGP带宽,能保证各地各运营商的速度。

2、 扩展性不好。如果后续用户多了,应用服务器会成为瓶颈。

3、 费用高。由于OSS上传流量是免费的。如果数据直传到OSS,不走应用服务器,那么将能省下几台应用服务器。

https://help.aliyun.com/document_detail/32122.html

采用JavaScript客户端直接签名(参见 JavaScript客户端签名直传 )时,AccessKey ID和AcessKey Secret会暴露在前端页面,因此存在严重的安全隐患。因此,OSS提供了服务端签名后直传的方案。

流程如下图所示:

本示例中,Web端向服务端请求签名,然后直接上传,不会对服务端产生压力,而且安全可靠。但本示例中的服务端无法实时了解用户上传了多少文件,上传了什么文件。如果想实时了解用户上传了什么文件,可以采用 服务端签名直传并设置上传回调 。

OSS 可以通过阿里云 STS (Security Token Service) 进行临时授权访问。阿里云 STS 是为云计算用户提供临时访问令牌的Web服务。通过 STS,您可以为第三方应用或子用户(即用户身份由您自己管理的用户)颁发一个自定义时效和权限的访问凭证。

STS 安全令牌、角色管理和使用相关内容详情,请参考 RAM 角色管理 。调用 STS 服务接口 AssumeRole 来获取有效访问凭证即可。

前端调用,请根据自身情况进行调用,下面是vue的示例

我们在项目中最终采用的是STS临时授权方案。

STS的优势如下:

关于STS的介绍请查阅阿里云官方文档:

https://help.aliyun.com/document_detail/32093.html?spm=a2c4g.11186623.6.1409.13107d9ckOKzS6

在这边不得不吐槽一下OSS的API,是真的很烂,基本找不到好的方法,都是基于网络才做出来的,当然,我使用的方法估计还有一些坑,只是能实现了我的功能。

STS临时授权访问OSS

https://help.aliyun.com/document_detail/100624.html?spm=a2c4g.11186623.2.5.600c6d13A0lSIR

vue直传OSS

https://blog.csdn.net/qq_33270001/article/details/88999189

el-upload组件结合上传阿里云OSS实现更优交互

https://blog.csdn.net/fifteen718/article/details/85259438

Web直传OSS

https://blog.csdn.net/weixin_33907511/article/details/91479830

OSS文件上传(页面直传)

https://blog.csdn.net/linlin_0904/article/details/84583676

请问STS和签名带Policy的差别

https://developer.aliyun.com/ask/205943?spm=a2c6h.13524658

STS临时授权访问OSS

https://www.cnblogs.com/ggband/p/10218851.html

vue+element+sts临时授权上传大文件到阿里云OSS时踩过的坑。

https://blog.csdn.net/aiguo94/article/details/111832776

Vue上传阿里云OSS(STS方式)

https://blog.csdn.net/qq_35775675/article/details/92797782

‘叁’ 阿里云OSS无法上传大文件怎么办

无法向OSS上传大文件。上传1KB以下的文件就可以,2KB以上的文件就不成功,请求发出去就收不到任何响应,直至超时。
解决办法是将本机的MTU设成1470(默认应该是1500)
Linux下修改MTU的命令是:(以阿里云服务器oss走内网默认是eth0为例)

‘肆’ 浅谈阿里云OSS分片上传文件

主体函数:

  this.client = new OSS({

            region: "oss-cn-shenzhen",

            accessKeyId: token.credentials.accessKeyId,

            accessKeySecret: token.credentials.accessKeySecret,

            stsToken: token.credentials.securityToken,

            bucket: "filename",

            secure: true

          });

token:为连接前请求一次后端数据生成链接所需要的值配合前端进行oss链接

任何oss操作都要执行的oss链接,链接主要为了相应oss当前状态可连接操作文件

所以说此处建议封装成一个可调用函数,以便于后续操作

this.client.multipartUpload    //上传文件:传入必填项和后端需要的mate值便于后续操作:

Path-name:必填项//路径名称

File:必填项需要上传的文件

{

//此处传或者获取所需操作,不必填项:如

progress: async function(p) {//上传进度,p为上传进度0-1

            },

meta:{}//自定义所需的值

};

常用函数还有

 删除文件: let result = await this.client.delete(path);

path:删除文件路径,常用于替换或直接删除文件;

let result = await client.deleteMulti(['exampleobject-1', 'exampleobject-2', 'testfolder/sampleobject.txt'], {quiet: true});

//批量删除文件

此处也需要链接oss主体函数再进行相应的操作 

上传调试: localStorage.debug = 'ali-oss';

更多操作请查询:https://help.aliyun.com/document_detail;

前端小白继续加油

‘伍’ 如何让客户端直接上传文件到OSS

很简单,你先在项目建设一个临时放缓存文件的目录,然后将文件放在这个临时缓存目录,再将目录里的文件上传到oss上,然后删掉缓存目录里的临时文件。。。。刚才我同事说的思维是这样,具体代码待会儿用到了再来完善回答

‘陆’ 1、用户想要使用oss实现上传和对外提供访问的功能,需要购买哪两种资源包

想要使用oss实现上传和对外提供访问的功能需要购买oss的标准型存储资源包和下行流量这两种资源包。OSS服务的基础计费项包括:存储容量,流量,请求次数。OSS提供存储数据处理服务(如图片处理服务等),会根据使用情况单独计量计费,不使用不计费。



OSS系统的主要功能:

1、运营支持和准备。对业务实现、业务保障、业务计量过程的管理支持和准备。

2、业务实现。接受客户订单,并通过对电信资源的有效分配、配置和部署,使电信运营商能够为客户提供其需要的服务,并能够为客户使用这种服务进行计费的一系列操作和活动。

3、业务保障。提供量化的测量指标,确保网络服务能够达到客户的订购要求。

4、业务计量。测量电信网络中各种业务的使用情况,计算处理使用电信业务的应收费用,并对电信业务的收费过程提供支持。

以上内容参考:网络-OSS

‘柒’ oss和ossclient上传区别

1、oss是阿里云对象存储服务是阿里云提供的海量、安全、低成本、高可靠的云存储服务,它是一个分布式的对象存储服务,提供的是一个Key-Value对形式的对象存储服务。
2、OSSClient是OSS的Java客户端,用于管理存储空间和文件等OSS资源。
3、oss和ossclient作用不同,意思不同。

‘捌’ 阿里云oss开放存储怎么上传文件夹,而且数据很庞大

有软件可以使用,直接用软件新建文件夹就可以。目前还有上传加速的软件。你可以在云市场看看。

热点内容
https加密链接 发布:2024-05-05 08:28:35 浏览:444
对等局域网与客户机服务器有什么不同 发布:2024-05-05 07:51:15 浏览:175
win7Linux修复linux 发布:2024-05-05 07:47:17 浏览:61
oracle批处理脚本 发布:2024-05-05 07:32:20 浏览:393
linuxftp响应慢 发布:2024-05-05 07:23:03 浏览:803
sql查询所有字段 发布:2024-05-05 07:22:07 浏览:672
电脑的存储符号 发布:2024-05-05 07:15:21 浏览:132
sql转换成数据类型int时失败 发布:2024-05-05 06:29:21 浏览:827
苹果手机视频怎么加密 发布:2024-05-05 06:22:08 浏览:919
java反编译工具使用方法 发布:2024-05-05 06:00:38 浏览:218