cloudFlare对象存储
订阅R2存储功能

创建存储桶


创建访问秘钥





上面两个秘钥要记下来,否则再次进入,就找不到了。
获取账户ID


cloudns注册免费域名



二级域名
linimgresource.ip-ddns.com
:是一个二级域名
com
→ 顶级域名(TLD)ip-ddns.com
→ 一级域名(属于 CloudNS 注册并拥有)linimgresource.ip-ddns.com
→ 你拥有控制权的二级域名(CloudNS 分配给你的子域名)
你没有真正拥有 ip-ddns.com
这个一级域名,它是由 CloudNS 拥有并托管的,给你用的是它下面的子域名(也就是二级域名),这是一种 DDNS(动态域名)服务的常见做法:
- 你在 CloudNS 上注册账号后,他们会给你分配一个二级域名;
- 你可以设置这个二级域名指向你的服务器 IP;
- 通常适用于家庭宽带动态 IP 的远程访问、轻量级服务部署等用途;
二级域名的优点:
优点 | 说明 |
---|---|
免费或低成本 | 很多服务商(如 CloudNS、No-IP)提供免费的二级域名,非常适合学习、测试。 |
快速部署 | 不需要购买域名,只需注册一个账号就能用,适合快速实验。 |
适用于动态 IP(DDNS) | 你可以配合客户端软件,实现自动 IP 更新,适用于家用宽带搭建服务。 |
子系统隔离 | 可以通过二级域名划分不同模块,如 api.example.com 、blog.example.com ,便于管理。 |
便于远程访问 | 结合 DDNS,可用于访问远程服务器(如家庭 NAS、开发板)。 |
二级域名的缺点:
缺点 | 说明 |
---|---|
你不拥有主权 | 你使用的只是别人域名下的“分支”,真正的一级域名不属于你。服务商若取消你就失效。 |
不专业,不易品牌化 | 域名太长、带有服务商的痕迹(如 ip-ddns.com ),不利于公司、产品宣传。 |
信任度低 | 浏览者会更信任像 yourname.com 而不是 yourname.otherhost.com ,后者容易被认为是钓鱼、广告站。 |
不能绑定 Cloudflare 完整功能 | Cloudflare 只支持添加一级域名,二级域名是无法直接添加的(你必须先拥有主域)。 |
部分服务限制使用 | 有些 API 服务、SSL 证书、备案系统只支持一级域名,无法对二级域名做深度配置。 |
添加域名到cloudFlare
把上面申请的域名linresource.ip-ddns.com
填入下面

选择Free。

点击 继续前往激活

修改域名linresource.ip-ddns.com
的DNS
服务器为下面地址:

把上面两个Cloudflare
名称的服务器配置到CloudNS
中


最后留两个,删掉其他的

配置后之后,点击继续

配置后不会马上生效,需要等待一会儿。等收到邮件就表示可以了。

等收到邮件:回到主页,如果发现Status
是Active
那么就说明可以了。

将域名绑定桶

到自定义域
,点击添加
,增加域名linresource.ip-ddns.com
。

添加之后,自定义域
如下显示:

使用其自带的域名
点击启用,然后会让你填写allow

启用之后,就会生成一个url,同时需要禁用掉之前自定义的域

使用Cloudfare上购买的域名

在Cloudfare购买的域名不需要做DNS的相关配置,直接将域名绑定桶就可以

结合PicGo使用
下载地址:https://github.com/Molunerfinn/PicGo/releases
Mac系统需要放开安全保护
Apple could not verify “PicGo.app” is free of malware that may harm your Mac or compromise your privacy.
在安装的时候会出现上面的提示,意思是:
- 你下载的这个 App(PicGo)没有通过 Apple 的官方公证(not notarized)。
- 所以 Apple 无法确认它是否安全。
- 并不是说这个 App 一定有毒或有问题,只是 没有被官方验证为“安全”。
开发者在发布 macOS 应用时,如果没有通过 Apple 的代码签名和公证流程(Notarization),就会出现这个提示。
PicGo 是一个开源项目(图床工具),不是通过 App Store 发布的,所以很可能没有公证。
解决方法(绕过 Gatekeeper):打开 系统设置 > 隐私与安全性(System Settings > Privacy & Security)

安装Amazon S3插件

配置


Picgo结合Typora
Picgo.app
设置Typora的语言为中文

设置图像

配置好上面的内容之后,比如我们使用QQ截图,截图之后就直接粘贴,然后Typora会启动PicGo.app,上传的Cloudfare上面。
另外,如果我们需要使用PicGo.app上传图片,那么一定要把系统语言设置为中文,在英文状态下,是没有PicGo.app这个选项的:

小问题
PicGo.app 默认会在 macOS 上被调用时激活窗口。这就导致,我截图上传之后,Mac就会跳转到PicGo.app的上传页面,导致写作体验非常不好。
一种解决方法是使用 PicGo-Core(命令行版)替代 PicGo.app,因为 PicGo-Core 仅在上传时运行进程,上传完成后自动退出,不会显示窗口或抢占焦点。
PicGo-Core
文档:https://picgo.github.io/PicGo-Core-Doc/zh/guide
下载
npm install picgo -g
安装S3插件
可以通过npm的官方网站查找目前所有的picgo的插件
搜索picgo-plugin-s3
,找到picgo-plugin-s3-lls
picgo install picgo-plugin-s3-lls
设置uploader
picgo set uploader
选择aws-s3

接着就是配置PicGo.app里面的内容
(base) xieshaolin@xieshaolindeMacBook-Pro ~ % picgo set uploader
? Choose a(n) uploader (Use arrow keys)
❯ aliyun
tcyun
smms
github
qiniu
? Choose a(n) uploader aws-s3
? access key id 1cf......................7f9
? secret access key [hidden]
? bucketName: blog-img-resource
? uploadPath: test/{fullName}
? 文件访问权限 public-read
? region: auto
? endpoint: https://3xxxxxxxxxxxxxxxxxxxxxxxx4.r2.cloudflarestorage.com
? https://img.example.com/bucket-name/ https://linresource.uk
? enable path-style-access or not No
? 是否拒绝无效TLS证书连接 Yes
[PicGo SUCCESS]: Configure config successfully!
验证
# 上传图片
picgo u ./Test-测试.jpg ./test-qiniu.png
# 或者
picgo upload ./Test-测试.jpg ./test-qiniu.png
配置Typora
注意这里选择自定义命令。命令如下:
/Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/node /Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/picgo upload

# /Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/node 是node的路径
(base) xieshaolin@xieshaolindeMacBook-Pro ~ % which node
/Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/node
# /Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/picgo 是picgo-core的路径
(base) xieshaolin@xieshaolindeMacBook-Pro ~ % which picgo
/Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/picgo
这样就配置好了。可以点击验证图片上传选项
进行验证。
两个问题
我之前没有配置node的路径,所以失败了。但是我在mac的命令行里面运行upload命令是不需要在搭配node的命令,为什么在Typora里面需要?
为什么我无法使用
PicGo-Core(command line)
这个配置
命令行环境(Terminal):
- 在终端中,picgo 是通过
npm install picgo -g
全局安装的,它本质上是 Node.js 的一个模块(PicGo-Core)。当你直接输入 picgo upload 时,终端会自动调用系统中的 Node.js 解释器(通常由 NVM 或全局安装的 Node.js 提供)来执行 picgo 脚本。 - NVM 管理了你的 Node.js 环境(/Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/node),并通过环境变量(如 PATH)确保 picgo 能找到对应的 node 可执行文件。因此,终端隐式调用了
node /path/to/picgo upload
。
Typora 环境:
- Typora 是一个独立的 GUI 应用,它运行在 macOS 的沙盒环境中,继承的 shell 环境可能不包含你的终端配置(如 .zshrc 或 .bashrc 中的 NVM 路径)。
- 当 Typora 执行 Custom Command 时,它直接调用你输入的命令字符串,但它不会自动解析 picgo 为 Node.js 脚本,除非你明确指定 node 解释器来运行它。
- 因此,Typora 需要完整的命令路径(如 /Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/node /Users/xieshaolin/.nvm/versions/node/v14.21.3/bin/picgo upload),以确保正确执行。
环境变量差异:
- 终端加载了你的用户配置文件(.zshrc 或 .bashrc),其中包含 NVM 的初始化脚本(如 source ~/.nvm/nvm.sh),从而使 picgo 直接可用。
- Typora 启动时不加载这些配置文件,导致 picgo 命令无法被识别为可执行文件。
选项识别失败:
- 当 Typora 检测到 picgo 不可用时,配置可能回滚到“无”,或者 PicGo-Core 选项无法正常工作。
配置文件
我们可以通过picgo set uploader
命令来配置uploader,也可以通过配置文件来配置:
通过cat ~/.picgo/config.json
查看配置文件
{
"picBed": {
"uploader": "aws-s3",
"current": "aws-s3",
"transformer": "path",
"aws-s3": {
"accessKeyID": "1.....................................f9",
"secretAccessKey": "8................................................................9",
"bucketName": "blog-img-resource",
"uploadPath": "test/{fullName}",
"acl": "public-read",
"region": "auto",
"endpoint": "https://3.....................4.r2.cloudflarestorage.com",
"urlPrefix": "https://linresource.uk",
"pathStyleAccess": false,
"rejectUnauthorized": true
}
},
"picgoPlugins": {
"picgo-plugin-s3-lls": true
}
}
通过nano ~/.picgo/config.json
或者vim ~/.picgo/config.json
修改配置文件。
定时删除本地图片
Typora是先把图片存放在本地:'/Users/xieshaolin/Library/Application Support/typora-user-images'
接着再把图片上传的图床。
所有,要定时删除本地的文件。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1909773034@qq.com