Cloudreve网盘对接阿里云对象储存OSS,还能这样做,节省一笔外网流量费用

原创  郑建华   2020-04-21   3034人阅读  3 条评论

    自从利用阿里云OSS存储对象搭建了个人云盘后,自己的很多资料都传到了网盘中,更重要的是这些资料大多都会分享出来。原本以为只需要购买储存空间40GB 每年9元,结果还需要掏外网流量费,并且还不便宜,每GB需要0.5元。详情见《慎入!阿里云OSS对象储存 外网流出流量收费》。就这些东西已经用掉我十几块钱了。但是我一直不死心,就想找出一种能够免费使用的方式。终于被我给找到了,其实很简单。

image.png

    首先我们要明白一点,就是内网访问是免流量费用的,那我们要实现免费就只能在这上面入手。参考官方资料《ECS实例通过OSS内网地址访问OSS资源》

通过OSS内网地址访问OSS资源有以下两种方式:
  • 与OSS同地域ECS实例可以直接通过内网访问有权限的OSS资源。

  • 与OSS不同地域的ECS实例或公网用户可通过配置ECS反向代理,间接实现通过OSS内网地址访问OSS资源。

获取OSS内网地址

  • 通过OSS控制台获取

    登录OSS管理控制台,打开指定Bucket的概览页面,在访问域名区域查看Bucket的Endpoint和Bucket域名,如下图所示。

  • 通过固定格式获取

    OSS的访问地址为固定格式:BucketName.Endpoint。其中,BucketName为您的存储空间名称,Endpoint为存储空间所在的地域对应的访问域名。详情请参见OSS访问域名使用规则


  • 与OSS同地域的ECS实例可以通过以下方式使用内网访问OSS资源:

  • 通过URL直接访问OSS资源

    您可以直接使用OSS资源的内网地址访问有权限的OSS资源。例如,杭州地域某Bucket名为test,根目录下有个Object名为1.jpg,处于公共读状态。此时,杭州地域的ECS实例均可以使用http://test.oss-cn-hangzhou-internal.aliyuncs.com/1.jpg访问此Object。因此,您可以将OSS资源的访问URL嵌入到您的网站中,提供给同地域的ECS用户或已通过专线接入到与OSS同地域内网的用户访问。
  • 通过ECS反向代理访问OSS资源

  • 不同地域的ECS实例或外网用户是无法直接通过OSS内网地址访问OSS资源的,但是您可以通过配置ECS反向代理来间接实现:
  • 以上步骤配置完成后,您的用户将通过您的ECS公网地址访问您的OSS资源。当用户访问时,ECS实例通过内网向OSS请求资源,之后再返回给用户。

    了解了这些后,我们就可以操作了

一、首先我们要有一个与对象储存OSS同区域的ECS服务器。

image.png

image.png

二、获取储存对象Bucket的内网访问地址

image.png

三、打开ECS远程服务器,测试地址访问是否成功

本地访问:

image.png

ECS服务器访问:

image.png

出现这些信息说明能够访问成功


四、ECS服务器apache(nginx)设置反向代理

由于我使用的宝塔面板集成的环境,所以在宝塔面板中配置,也可以选择直接在apache中配置

image.png

五、使用代理地址在本地访问

image.png

六、修改原域名为设置的代理链接

image.png

七、测试应用是否正常

image.png

文件下载正常,如果不放心可以特意将地址设置成错误的,再尝试下载,会发现报404错误

大功告成!可以放肆下载,再也不用担心流量费啦!!!

本文地址:https://www.zjh336.cn/?id=341
版权声明:本文为原创文章,版权归 郑建华 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

 评论列表

  1. 郑建华
    郑建华 【站长】  @回复

    博主使用的ECS是包年包月的,3M带宽,通过服务器访问影响不大,并且还能节省外网流量。如果不是无限流量的,还是建议直接使用外网流量更好些。

  2. 1506424408
    1506424408 【高级】  @回复

    厉害

  3. YUGLE
    YUGLE 【实习生】  @回复

    第三点,那么ecs服务器端怎么访问