首页
友情链接
点点滴滴
关于本站
秋码记录
一个游离于山间之上的Java爱好者 | A Java lover living in the mountains
累计撰写
142
篇文章
累计创建
317
个标签
累计创建
46
个分类
栏目
首页
友情链接
点点滴滴
关于本站
搜索
包含标签
OSS
腾讯云COS托管静态网站,以及如何解决访问出现了下载网页的情况
腾讯云对象存储(Cloud Object Storage,简称COS),与其他云厂商所提供的云对象存储都是面向非结构化数据,只是每个云厂商的叫法有别于他家,或许是更能彰显厂商的品牌吧! 但不管云厂商怎么给云对象存储起名,最终客户关心的还是性价比。 使用云对象存储,无非是存放些静态资源(javascript 第三方库、项目中内部的javascript文件、样式文件css、字体文件、小图标等),以此来减轻服务器所承载的压力,从而使得整个站点让用户体验效果显著提升了。 然而,本文要讲的是,怎么样在云对象存储中托管静态网站(这虽然听起来有点可笑,这年头,谁还玩静态网站啊。你也别笑,秋码记录 就是一个很好的静态网站的例子,它也的确是静态网站,可它却具有了与用户交流的文章评论`功能!) 当然咯,云对象存储用来托管静态网站,也只是在开发、测试阶段,毕竟大流量的情况下,费用那是不可估量的! 创建存储捅 对于存储捅这个名词,刚刚说了,每个云厂商的叫法不同而已。 首先,进入腾讯云-》控制台(在这之前,你当然得购买了腾讯云 COS),创建存储捅,名称随便填写,在访问权限选择公共读私有写。 而后,服务端加密这一项,选择SSE-COS(看着名称,估计是腾讯云又仿造他人什么的吧!) 就这样,腾讯云COS就创建成功了,之后便可以上传你的静态资源到这个对象捅里了。 配置静态网站 既然,我们使用COS来托管静态网站,那么是少不了些必要的配置,比如开启静态网站`开关等等。 在左侧导航栏中找到基础配置,随后在其子项的静态网站开启静态网站的配置。(感觉在绕口令似的,其实,不关你是这么觉,我也这么觉得。) 绑定自定义域名 同样的,还是在左侧导航栏,找到域名与传输管理这一泪目,点开它底下的自项,点击自定义绑定域名。 在绑定自定义域名之前,你得先确认你刚购买的COS区域是国内的,还是非国内的,若是国内区域的COS,那么你绑定自定义域名时,这个自定义域名是需要备案的。当然咯,COS购买时选择的是香港区域,自定义域名是不需要备案的哦! 浏览器访问托管的静态网站却下载了文件 很不辛,在你配置了存储捅的静态网站,上传了所有的静态资源后,兴致勃勃地打开浏览器,你以为页面能够如期的展示你所希望的样子,然而,历史性的一刻,让你瞬间愕然,这是怎么回事呢?怎么就直接下载了页面文件(也就是下载当前的index.html`文件)?这到底是哪个环节出了问题? 然而,你是按着官方文档来着,并且文档上也是这么做的,中间也没有遗漏些什么重要配置啊!(关键是也没什么重要配置,充其量就是开启了静态网站的开关)。 于是,你借助搜索引擎的强大搜寻功能,找找看,到底有没有解决办法(也就是别人在COS托管静态网站时,对于访问时出现下载文件`是怎么处理的)。 不搜不知道,一搜可谓是天下知。使用COS(也有其他云厂商的)托管静态网站的博文、帖子、论坛还真不少,你点开一看,他们与你的静态网站配置如出一辙,他们也同样出现了你所出现的问题(没把你绕进去吧,也就是他们跟你一样,在浏览器访问也出现了下载index.html文件。) 最终,解决办法便是在刚刚上传的index.html,点击右上角的...,在上弹出的列表项中,再次点击自定义头部 当你看到这个对话框,你或许就该恍然大悟了,也总算明白了,为什么浏览器访问会出现下载 index.html的情况了吧!毕竟,腾讯云默认将你上传的文件头部定义为text/html。 我们点击编辑来修改这个index.html文件表头。 在参数选择下拉框中选中Content-Disposition,值是手动输入inline. 现在,你再次打开浏览器进行访问,这回,展现在你眼前的,便是你所期望的页面展示了。 可当你回过头,再去查看index.html头部信息时,却发现它自动的加上初始的那个Header信息,这时,你不禁啐了一口,“腾讯云,真TMD恶心,哦!不,国内的这些云厂商都TMD超恶心”。 当然咯,不管是腾讯云COS,还是其他国内云厂商,想要使用云对象存储来托管静态网站还是比较,怎么说呢!用来开发、测试勉强还凑合吧!
2024-07-19
[云计算]
使用 golang 以及 Gin 框架,将上传的图片在不保存至本地的情况下添加水印,并上传至阿里云 OSS
正如标题所述,使用golang对上传图片添加水印,以及将图片上传到阿里云OSS,网上一搜索,便有你想要的结果了,可是,他们却先将上传图片添加水印后保存在本地,而后再将添加了水印的图片上传到阿里云OSS。 这无疑是暂时占用了你电脑的磁盘空间(这里说是暂时,因为你可以通过程序对上传到阿里云OSS成功的图片进行删除),即便是这样,它也是消耗了磁盘读写操作,虽然人类是察觉不到这么细微的变化。 然而,作为技术人员的我们(不介意我这么称呼自己吧!),使能够Review出这段程序的问题。很显然,本地图片是要通过程序处理,添加水印,而后最终储存到阿里云OSS中,而不是又要在本地多存了一张比原图多了些水印的图片。 图像处理库 既然我们的目的明确了,那么就卷起柚子加油干吧! 虽然,使用golang对上传图片添加水印,以及如何将图片上传到阿里云OSS中,是两个独立分开的。但是,这两步看似分而食之的程序,其实是可以合二为一的!(我想,正在浏览本文的你,也是这么想的!) 这是可行的方案,毕竟先前的秋码记录 就是这么做的(那是使用Java构建的那些年!当然现在的 秋码记录 改用 ```Hugo·``搭建了)。 既然,java能实现对上传图片添加水印,而不暂时保存在本地,立马即可上传到阿里云OSS中。想必,golang也是可以完成的! 然而,网上相关的资料有限,才能铸就本文的诞生! 首先,我是用golang的版本是1.19,虽然不是最新的,但却不妨碍我们继续对本文的讲解。 虽然,人类总是对新鲜事物充满好奇,从而萌生了猎奇心。但也只有在旧事物的烘衬下,人们才能对新事物寄以最大的希望!这就好比,老婆总是别人的好看(当然,别人的老婆也有没有自己老婆好看的),这才造就了黄脸婆这一全国男人在没有老婆在身旁统一叹息声! 你得在你电脑任一磁盘下,新建一空文件夹,随后打开黑窗口(Terminal),输入以下命令,说明是modules进行管理的(毕竟我使用的是golang 1.19): go mod init qiucode.cn/uploadImage 对于以上这行命令,就是初始化golang模块(module),在golang的世界是```万物皆可模块``(我说的如果不对,那么说出你的想法)。 初始化项目后,我们会发现文件夹下多了个go.mod文件(这个就是用来管理第三方依赖库的管理文件,不需要操作!),在该同级目录下新建main.go文件。 既然本文是探讨如何实现图片添加水印的,那么引入图像库那是必不可少的! go get github.com/fogleman/gg 本文不会对这个图像库进行深层次的讲解!毕竟本文的核心内容是介绍如何对图片添加水印,而不是避重就轻、本末倒置讲起了本该一笔带过的东西,却花了浓墨重彩去着重的描绘刻画它,到头来,却失了初心,乱了本文的主旨,实属不该。(实在不清楚的,可以去查看其文档) 很显然,将图片上传到阿里云OSS上,引入其SDK,那是必不可少的(关于这一点,应该不需要我多费口舌了吧) go get github.com/aliyun/aliyun-oss-go-sdk/oss 接下来的这个依赖库,并不是必须的(那就是可选的),毕竟,有它没有它,本文都可以实现! go get github.com/gin-gonic/gin 是啊!都说了,不引入它,本文也可以实现,那么我为什么还引入了呢?(关于这一点,欢迎你能在评论中留下你的只言片语,请不要吝啬你的文字!) 用代码实现标题的需求 前提准备工作就绪,我们该正式进入编码环节了。到了这里,正处于屏幕前的你,想必早就迫不及待了吧!毕竟,你就是与我有同样的需求,才会浏览本文的(当然也有那种,鼠标不小心点到了,但那种几率是很小的,我相信你不是属于那一类的) 首先,我们使用VS Code(你也可以使用其他你平时常用的IDE,不必非要使用与我一样的VS Code,然而,作为一款开源免费的IDE,你还有什么理由不去使用它呢?哦,差点忘记了,都说了,使用IDE是个人的自由,可我这么一说,倒有了让你使用VS Code之嫌。虽然,或许你比较喜欢使用收费软件,但你都是找的破解方法来破解软件,从而使用它们) 打开刚刚新建的main.go文件,开始逐步实现标题的需求。 package main import ( "bytes" "image" "image/png" // "image/jepg" //用于对 jpg 格式的图片进行处理 本文暂时不对 jpg 图片做处理 "github.com/gin-gonic/gin" //web 框架 "github.com/fogleman/gg" // 图像处理哭 "github.com/aliyun/aliyun-oss-go-sdk/oss" //阿里云OSS SDK ) 随后,我们在main函数中实现标题中的需求。
2024-03-30
[golang gin]