写点什么

自建图床应用,我只推荐 Serverless

2021 年 3 月 08 日

自建图床应用,我只推荐 Serverless

程序员写作一般会用 Markdown 格式,Markdown 虽然简洁方便,但图片的插入却是一个问题。这时候就需要用到图床了。



什么是图床?


一般来说,网络文章上的配图,在浏览器打开后都会有一条图片链接,这个链接指向的服务器就是「图床」。


在网上写博客的朋友们,如果需要复制某张图片,偶尔会遇到「图片禁止引用」的情况,就是因为各大网站的图床不允许公开访问。此时,你就需要另存图片,再重新上传插入。如果有自己的图床,那么写博客的时候就不用来回折腾插图了。


效果展示



首先,我们需要先开通腾讯云 Serverless 云函数和对象存储 COS 服务;


接下来,我们可以通过云函数控制台直接进行操作,或者通过 Serverless Framework 工具进行部署。


一、使用云函数控制台部署


1. 新建函数并上传函数代码包

选择空白函数

从本地上传 zip 代码包(从 GitHub 下载代码)

代码包地址:https://github.com/awesome-scf/scfimgbed注意:zip 包内应能直接看到 index.js,不能是在文件夹内
复制代码


2. 修改文件配置

打开「函数管理 - 函数代码」,修改 defaultconfig.js 文件配置,修改完成后,将该文件重命名为 config.js。


SecretId 和 SecretKey 可以从「访问管理-API 密钥管理」中获得


3. 创建对象存储 COS 桶

如果没有对象存储的存储桶,需要创建一个,并在存储桶概览中获得 Bucket 和 Region 信息:

并在存储桶内创建文件夹:

非必要,和 config 配置保持一致即可


4. 新建触发器

修改完成后点击保存,并在「触发管理」中,新建两个触发器:

API 网关 GET 触发器配置,需开启集成调试

API 网关 POST 触发器配置

点击 API 网关 POST 触发器,选中「编辑」

勾选支持 CORS 并保存

找到 POST 方法地址

将 upload.html 文件中的 scf_url 改成 API 网关 POST 触发器的地址

访问 API 网关 GET 触发器的地址即可

通过上面四步,图床应用就新建成功啦~


二、通过命令行部署


1. 安装命令行工具 Serverless Framework

npm install -g serverless
复制代码

2. 下载项目模版代码

进入模版下的函数目录页,修改配置信息

sls init imgbed-for-scfcd imgbed-for-scf/scf
复制代码

在配置文件config.js 里填入您的 SecretId 与 SecretKey

const config = {    tencent_cos: {        SecretId: 'XXXXXXXXXX', //您的 SecretId        SecretKey: 'XXXXXXXXXXX', //您的 SecretKey    }}module.exports = config
复制代码

您也可以通过 sls registry imgbed-for-scf 指令,快速了解项目的详细信息。

3. 部署

回到根目录下,deploy 完成部署。

cd ..sls deploy
复制代码

4. 测试应用

部署成功后,打开 scf 目录下的 upload.html 文件,将创建成功的 API 网关 URL,填入 scf_url 字段里


保存后,在浏览器中打开该页面,即可使用您自己的图床应用:



头图:Unsplash

作者:自建图床的

原文:https://mp.weixin.qq.com/s/dQZxBruMqCaSaUDxP5G1Hg

原文:自建图床应用,我只推荐 Serverless

来源:TencentServerless - 微信公众号 [ID:ServerlessGo]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2021 年 3 月 08 日 23:441489

评论

发布
暂无评论
发现更多内容

香烟缭绕的岁末

ITCamel

7. ✎会查新华字典不?会。Python字典已经掌握了

梦想橡皮擦

Python 爬虫 2月春节不断更 python入门

Ray 1.0 架构解读

lipi

分布式计算 Apache Arrow ray

日记 2021年2月12日(周五)

Changing Lin

2月春节不断更

香,聊聊TiDB的分布式事务模型

程序员jinjunzhu

分布式数据库 TiDB Percolator

前端冲刺必备指南-HTTP/HTTPS/HTTP2/DNS/TCP/经典题

魔王哪吒

学习 程序员 面试 前端 2月春节不断更

程序员成长第六篇:如何选择公司?

石云升

职业发展 2月春节不断更 选择公司

Python优化机制:常量折叠

Python猫

Python

12周架构

FreeOcean

hadoop mapreduce YARN

日记 2021年2月11日(周四)

Changing Lin

2月春节不断更

鼠年最后一天

Tango

七日更 2月春节不断更

过节 劝你少喝酒(一)

三号无名指

【STM32】stm32f407 + DS18B20 碰出不一样的火花

AXYZdong

硬件 stm32 2月春节不断更

6. Python 元组,不可变的列表,滚雪球学 Python

梦想橡皮擦

Python 2月春节不断更 python入门

Java反射--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

JavaPub

Java 面试题 反射 java反射 javapub

牛年到 春节快乐

小马哥

2021年展望

编写优雅Javascript代码的最佳实践

devpoint

js 纯函数

GitHub 上的优质 Linux 开源项目,真滴牛逼!

JackTian

GitHub Linux 开源项目 运维工程师 2月春节不断更

微信限量纪念版code封面来啦,速看领取方式

孙叫兽

视频号 2月春节不断更 孙叫兽 微信红包封面 纪念版

一个人的春节,也要过得开心

程序员架构进阶

个人感悟 七日更 2月春节不断更

走进 Tokio 的异步世界

lipi

rust 异步 tokio

Electron 多进程方案

将儒

Electron 多进程

CNCF 2021年展望:外围有亮点,核心还有硬仗

杨明越

【LeetCode】数据流中的第 K 大元素Java题解

HQ数字卡

算法 LeetCode 2月春节不断更

产品经理训练营-第四周作业

羽室

Elasticsearch 分词器

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

机器学习·笔记之:inverse and transpose

Nydia

【LeetCode】杨辉三角Java题解

HQ数字卡

算法 LeetCode 2月春节不断更

业务中台建设 - C端用户中心

孝鹏

中台架构 用户

(上)python3 selenium3 从框架实现代码学习selenium让你事半功倍

1_bit

Python selenium

给自己的新年指南

boshi

七日更 新年

Hummer 轻量级跨端技术框架详解及实战

Hummer 轻量级跨端技术框架详解及实战

自建图床应用,我只推荐 Serverless-InfoQ