258-更高效实惠的服务器文件下载方式——OSS

刘小泽写于2022.7.7

前言

之前介绍过: 如何让你的云服务器具有上传下载文件的功能?

可以实现服务器搭建FTP用来下载数据,但既然是搭建在服务器上,就非常依赖服务器的内存和带宽,因为它们会影响用户数量和访问速度。当然如果数据不大,可以采用这种方式,也比较方便。

如果你的数据很多,目标用户群比较大的时候,更高效的下载方式——OSS就会帮到你

什么是OSS?

参考:https://help.aliyun.com/product/31815.html

对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

我之前博客的图床其实就是利用了OSS,主要存储博客中的图片,根据访问量按天收费(其实一天也就几毛钱)

除了图片,OSS的另一个功能就是存储数据。不知道你注意没有,很多科技服务公司给你返回的数据就需要用他们的OSS browser软件去下载(销售会给你一个AccessKeySecret, AccessKeyId)用来访问加密的数据。

OSS不需要自己配置服务器,不用担心服务器配置够不够用,只需要考虑用多大的空间,以及需不需要上传下载加速服务(需要单独按流量计费)

OSS传输加速利用全球分布的云机房,将全球各地用户对存储空间(Bucket)的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议,为云存储互联网的上传、下载提供端到端的加速方案。远距离数据传输加速就是使用场景之一。

计费方式

需要注意:不同地区的存储流量和加速流量不通用,如果你的数据目标用户同时包括海内外,那么需要买多个资源包:

有了OSS之后能干啥

这里以阿里云为例,购买成功以后会进入到OSS console

首先创建Bucket

Bucket可以认为是一个个的数据存储桶,每个桶可以分门别类,存储不同的数据,或者把数据存在不同地域

为了允许其他用户访问,这里不加密,并且设置公共读

然后选择是否传输加速

使用场景如下:

  • 远距离数据传输加速

    例如全球性的论坛、Top在线协同办公平台等,部分客户会因传输距离较远导致上传和下载体验非常差。传输加速功能可以让全球各地的客户使用优化后的网络来传输数据,极大地提升上传和下载速度,让不同地域的用户都能有很好的访问体验。

  • GB、TB级大文件上传和下载

    通过互联网远距离上传和下载大文件时,经常会因为网络延迟过大而导致传输失败。传输加速功能使用优化的互联网传输链路、调优的协议栈与传输算法,可大幅减少远距离互联网传输超时的比例。您还可以让传输加速功能与分片上传、断点续传下载结合,形成远距离大文件上传和下载的解决方案。

  • 非静态、非热点数据下载加速

    例如相册应用、游戏、电商、社交应用的评论内容、企业门户网站、金融类APP等,用户的下载体验直接影响产品竞争力和客户留存率。传输加速功能作为专为OSS上传、下载加速而设计的功能,可以最大限度利用客户端的网络能力,提升用户的下载体验。

上传文件

将要配置的文件批量上传到这里,可以直接拖拽文件夹

另外,我这里选择了加速服务

【可选】添加域名

常规的访问域名是:bucket名称.oss-cn-区域.aliyuncs.com ,加速域名是:bucket名称.oss-accelerate.aliyuncs.com

这样写进代码不是很美观,并且给别人分享也不上档次,所以如果手头正好有闲置的域名,就可以用起来

在:传输管理 =》域名管理 =》绑定域名 =》然后需要在域名服务商那里进行验证,验证通过后就可以直接用自己的域名代替上面的长域名

【需要注意的是:因为OSS服务还是在境内,所以域名依然需要备案才能用。如果感觉备案麻烦,就先用长的域名过渡一下吧】

以上就是对于一个存储桶的配置,如果你想同时配置多个区域的数据存储,就把上面的步骤重复多次,只是每次换个bucket的区域即可

最后就可以下载了

url = "bioinfoplanet.oss-accelerate.aliyuncs.com/test/logo.png"
# downloader::download(url,destfile = 'logo.png')
utils::download.file(url, destfile = 'logo.png')

logo

Yunze Liu
Yunze Liu
Bioinformatics Sharer

Co-founder of Bioinfoplanet(生信星球)

Next
Previous

Related