目录
前言
云服务器用起来感觉最难受的就是带宽了,国内的云服务器普遍带宽都很小,但买国外或者香港的话延迟大还容易被封IP。一般网站/app最占带宽的是图片和音视频等文件的上传下载,下面我们要聊的cos和cdn就是解决这个问题来的。
简介
对象存储COS
- 对象存储不同于我们平时操作系统里的文件存储,它就像一个map,存储的所有文件都有一个唯一的名称作为key,文件内容作为value。而没有目录的概念。
- 这样做的意义在于,当文件很多,目录结构深时,文件存储需要根据那颗目录树一步一步找到文件,显然是比对象存储直接按文件名一步到位得到要来得慢。
- 但目前很多云服务厂商都有在对象存储上提供目录功能,这大多是模拟出来的。比如腾讯云是将文件名中的 / 识别为目录模拟得到的。
- 比如:放进两个文件:
- aaa.txt
- wow/abc.cpp
- 由于 "wow/abc.cpp" 的文件名带有 / ,则可以模拟解析为是放在wow目录下,存在一个文件叫abc.cpp。
- 我们使用云服务提供的COS来替换我们的服务器实现文件的上传和下载。一般云服务COS不限制下载速度,且用户上传也免费。但用户的下载流量、存储空间占用、请求次数是要收钱的。
- 注意这不是三选一的问题,是三个方面都要收钱的!
- 比如:在一个月的时间里,我们向COS上传了 100 MB 文件,发送过 1 w 次读写请求,且用户外网下载文件使用过 10G 的流量。
- 那么结算时,需要支付:A + B + C
- A:100M/1个月 的存储空间占用费用
- B:1w次读取请求费用
- C:外网下载 10 G 流量费用
- 显然,外网下载流量很容易被人攻击,盗刷流量,然后疯狂扣流量包扣费,容易出现一觉醒来,没了一套海景房的刺激。后面我们用CDN来防止一部分攻击,因为COS的流量费比CDN贵非常多,而且CDN能设置更多的访问限制,降低被攻击的损失,所以可以用CDN抗在前面。
CDN
- cdn的用途很广泛,由于用户在地域上分布全国甚至全球各地,而我们的服务器一般是只在一个或几个地方而已,cdn在地域上可以分散多个节点,作为一个中间人,缓存用户访问服务器上的文件,并在用户下一次请求这个文件时,cdn就可以直接提供给用户,而不需要大老远来请求服务器,提高用户的访问速度。
- 这里我们可以利用这个特性,且其价格低,来帮助COS降低被攻击的损失。
使用问题
盗刷COS流量
- 前面我们已经提到,COS的外网下载流量是比较贵的,而且速度快,容易被攻击刷流量。
- 解决办法:
- 把COS访问权限设置为 私有读私有写
- 当用户需要上传文件时,使用云厂商提供的SDK,服务端预签名上传文件的URL,并将签名后的链接发送给用户,客户端只能按照签名链接指定参数、请求头、请求类型的上传文件到COS,上传不需要使用CDN。
- 当用户需要下载时,使用SDK获取COS上对应文件名的文件链接,并将链接的域名替换为CDN的域名,然后返回替换后的链接给用户下载文件,并在CDN设置限制IP访问速度、下载速度等限制即可。
防盗链/限速
- 由于浏览器不允许伪造请求头中的Referer、Host、Origin,因此可以在CDN/COS都配置防盗链,限制请求的Referer。这个可以阻止别人的网站直接把你的资源链接放到他的网站使用的情况,减少一些被偷资源流量的问题,但他直接下载你的资源然后上传到他的服务器还是可以的。
- 注意网页是可以指定浏览器不携带Referer的,即请求是空Referer。而在浏览器直接敲网址进入网页时的请求也是空Referer,你需要考虑是否需要允许空Referer的请求。防盗链挡不住客户端请求,因为客户端是可以随意伪造请求中的任意值的。如APP、nodejs、命令行、服务端程序等,只要是非标准浏览器环境就可以随意伪造。
- 在CDN中,可以限制下载速度、IP访问速度等。
https网站中使用http资源
- 由于CDN的Https目前很多云厂商是收费的,虽然不贵,但也是钱。
- 如果你CDN访问使用了http,但网站是https协议时,直接在https网站里获取http资源(图片、音视频等)会被浏览器认为是不安全的,并在浏览器的开发者工具中打印警告,但也是能用的。但默认不会带上Referer,因此如果你设置了防盗链不允许空Referer的话,就有问题了,这个时候可以在网页的<head></head>中添加配置:<meta content="always" name="referrer" >,这样浏览器在获取Http资源时也会带上Referer了
- https网站中发起http请求是不允许的!
上传文件大小/数量限制
- 用户向我们的服务端申请用于上传文件的预签名URL时,需要携带参数:文件大小、文件MD5,然后我们可以指定该链接发送时必须携带:
- Content-Length=500
- x-cos-meta-md5: {文件md5值}
- 由此就可以防止用户拿到预签名URL后,上传了其他文件的问题
- 文件大小限制,就是在我们服务端给预签名URL时进行检查。
- 文件数量限制,可以将用户、IP获取上传链接时写入数据库记录,根据这个记录来设计用户上传文件的数量和总大小等。
腾讯云COS的SDK/c++
- 整了老半天,终于写好了cmakelist能编译运行release,但debug版一直找不到链接符号。
- 看了大概是因为他是SDK源码里有一个文件夹three-party存放了已经编译好的第三方依赖库,但这些库是release的,因此需要我们编译debug的依赖库。但我的项目里也依赖openssl,改来改去才能release,最终debug版放弃了。
- 后来开始用上go了,学1天然后上手引入他的sdk和框架开发完cos相关的接口。有c基础还是很快上手的。
Thank you for great article. Hello Administ .Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me.Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Thank you for great content. Hello Administ. Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me.Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Amazing this is a advantageous web site.
https://warszawa24.ovh
Maintain the helpful work and generating the group!
https://www.malbork1.pl
Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across.Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Thank you for content. Area rugs and online home decor store. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Acura Tl Years To Avoid https://medium.com/@yearstoavoid/acura-tl-years-to-avoid-bdf5b0ae5638
her zaman heryerde en iyisi fatih escort sitesi
Hello there, awesome website you’ve in here.
https://www.kariera24.info
You have got very well information listed here.
https://www.pewnybiznes.info
Great looking site. Presume you did a whole lot of your
own coding.
https://mojakruszwica.pl/pl/
thewiin.com
그러나 나는 거기에 많은 사람들이 있고 사람들로 가득 찬 것을 보았습니다.
say thanks to a lot for your internet site it aids a whole lot.
https://www.oto-praca.pl
https://t.me/escort_rabotar
Surprisingly user pleasant website. Great info available on couple of clicks on.
https://www.tv-slupsk.pl
You’ve gotten fantastic info on this web-site.
expresskaszubski.pl
thank a lot for your site it assists a great deal.
https://www.swiebodzin.tv
Because the admin of this site is working, no question very shortly it will be famous, due to its quality contents.
stake casino logo png
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across.Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Thank you for great content. Hello Administ. Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Thank you great post. Hello Administ .Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Great post thank you. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
I really love to read such an excellent article. Helpful article. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Thank you for great information. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut
Your writing is like a breath of fresh air.
most secure defi platform
Thank you for the good writeup. It in fact was a amusement account it.
Look advanced to more added agreeable from you!
By the way, how can we communicate?
An impressive share! I’ve just forwarded this onto a
friend who had been conducting a little research on this.
And he actually ordered me dinner because I found it for him…
lol. So let me reword this…. Thanks for the meal!!
But yeah, thanks for spending the time to discuss this issue here
on your site.
Post writing is also a fun, if you know afterward
you can write if not it is complicated to write.
п»їlegitimate online pharmacies india http://indiaph24.store/# п»їlegitimate online pharmacies india
india pharmacy
Андрей Бурим — вымышленный персонаж, который мог бы быть талантливым художником-авангардистом из начала 20-го века.
Представьте, что он был одним из тех,
кто стоял у истоков новых направлений в искусстве, вдохновленный бурными изменениями того
времени. В его работах чувствуется стремление к экспериментам с формой и
цветом, что позволяло ему создавать произведения,
вызывающие сильные эмоциональные реакции
у зрителей. Его картины — это смелое
сочетание абстракционизма и символизма, где каждый мазок кажется частью большего рассказа
о человеческих переживаниях и
поисках смысла.
Андрей Бурим мог бы быть также известен своим участием в культурных
салонах, где собирались мыслители и творцы того времени.
Его идеи и работы, возможно,
обсуждались в литературных газетах и на выставках, становясь предметом как восторга, так и споров среди критиков и публики.
Благодаря своему инновационному подходу и нестандартному
видению, Андрей мог бы оставить значительный след в истории искусства, став источником вдохновения для последующих поколений художников.
reputable indian online pharmacy http://indiaph24.store/# mail order pharmacy india
indianpharmacy com
Online medicine home delivery http://indiaph24.store/# top online pharmacy india
Online medicine order
Chevy Silverado Years To Avoid https://medium.com/@yearstoavoid/chevy-silverado-years-to-avoid-84030d000297
indianpharmacy com http://indiaph24.store/# online shopping pharmacy india
best india pharmacy
You have got the most effective internet sites.
https://www.zvami.tv
Your info is really appealing.
https://www.placpigal.pl
I appreciate perusing your site. Thanks a ton!
ki24.info
Great post! We are linking to this particularly great article on our website.
Keep up the good writing.
The material is amazingly intriguing.
https://orzesze.com.pl
Рады приветствовать вас, друзья!
Компания XRumer Inc предлагает свои услуги по СЕО продвижению.
Ваш сайт, как мы видим, еще только начинает набирать обороты. Для того, чтобы ускорить процесс его роста, предлагаем наши услуги по СЕО-оптимизации. Также у нас имеются доступные и качественные инструменты для СЕОшников. У нас большой опыт в данной отрасли, в арсенале имеются реальные рабочие кейсы – если интересно, предоставим по запросу.
На данный момент предлагаем скидку на самые востребованные услуги – 10%.
Предлагаемые услуги:
– Трастовые ссылки (нужно каждому сайту) – от 1,5 до 5000 рублей
– Размещаем 2500 безанкорных ссылок (рекомендуется всем сайтам) – 3900 руб
– Прогон по 110 тыс. сайтам в RU.зоне (максимально полезно для сайтов) – 2.900 руб
– Разместим 150 постов Вконтакте о вашем сайте (отличная реклама) – 3.900 рублей
– Публикации о вашем сайте на 300 интернет-форумах (мощнейшая раскрутка веб-сайта) – 29 тыс. рублей
– СуперПостинг – это прогон на 3 000 000 ресурсов (мегамощный прогон для вашего сайта) – 39900 рублей
– Рассылаем рекламные сообщения по сайтам с использованием обратной связи – договорная цена, в зависимости от объема.
Если что-то не понятно, обращайтесь, поможем разобраться.
Telgrm: @xrumers
https://XRumer.cc/
Skype: Loves.Ltd
Hi mates, good post and nice arguments commented here, I
am really enjoying by these.
Wow cuz this is great work! Congrats and keep it up.
https://www.oto-praca.pl
Presa din Romania Ziare online, stiri de actualitate din Romania Presa din Romania.
her zaman heryerde en iyisi fatih escort sitesi
Whoa, this is a advantageous internet site.
https://www.pewnybiznes.info
Chevy Volt Years To Avoid https://medium.com/@yearstoavoid/chevy-volt-years-to-avoid-ed17600339b9
say thanks to so considerably for your website it assists a whole
lot.
https://www.kurier-lokalny.com