February 17, 2025

使用Cloudflare R2/Vercel建立图床管理网站

使用Cloudflare R2/Vercel建立图床管理网站

Overall

我使用Markdown格式的文件记录日常,常常向Markdown文件中插入图片。由于Markdown记录的图片链接是存储在本地的==相对链接==,导出/复制Markdown文件时,离开本机环境后,往往会出现无法加载图片的问题。这时就需要在Markdown中引用图片的==绝对链接==,确保文档导出后图片可以正常加载。 Cloudflare R2是一个Cloudflare兼容兼容Amazon S3 API协议的对象存储服务。根据Cloudflare的政策,在一定用量内,R2可以免费使用。我将在Vercel托管一个图床管理网站,用于管理R2中存储的图片,这样可以直接在Markdown文件中插入已保存在图床的图片==绝对链接==。

Tags

#Cloudflare #R2 #Vercel #图床

How to

前置条件

  • Cloudflare账号
  • 至少1个在Cloudflare管理的域名
  • GitHub账号
  • Vercel账号(关联Github账号)

1. 建立R2 bucket

Cloudflare R2 

登录cloudflare dash,在左侧导航找到“R2 Object storage”,然后点击“Create bucket”,填入Bucket Name,选择Location和default storage class。这次创建的图床应用,所以Bucket name是pics,Location和storage classs我选择的是默认设置。 Create Bucket 

创建好bucket后,点击==pics==,然后进入settings页面。为了便于图床的访问,请为bucket指派一个自定义域名(costom domain)。

2. 创建API token

创建好bucket后,在“create bucket”按钮的左侧,有"{}API🔽"入口,点击“manage API tokens“,进入R2 API设置界面。然后点击“Create API token”:

  • 设置Token name,我这里设置为“R2 pics token”;
  • Permissions选择“object read & write”;
  • specify bucket(s)选择“Apply to specific buckets only”,选中刚刚建立的bucket:pics;
  • “TTL”和“Client IP Address Filtering”默认。 信息填写好,点击“Create API Token”按钮,会弹出创建成功界面,保存好“Access Key Id”和“Secret Access Key”;

3. 部署至Vercel

打开Github仓库:Github s3-image-port,点击Deploy,自动跳转至Vercel进入部署过程,部署过程会自动将Fork上面的仓库到您自己的Github仓库。 部署成功后,为解决Vercel无法在国内访问的问题,需要为新部署的网站配置自定义域名。完成后,点击自定义域名后,可正常访问。

4. 图床网站设置

访问我们刚刚在Vercel部署的网站,进入Settings-->S3 settings, 具体设置如下

  • Endpoint find at API token,注意链接不带bucket name。
  • Bucket name pics
  • Region WNAM,来自R2 settings-->location, 填写4位缩写。
    • Access Key ID copy after API token created
  • Secret Access ID copy after API token created
  • Public URL: 示例https://pics.workapp.uk

5. 使用图床

图床网站UI 

图床管理网站分为3个部分,upload,gallery和setting,分别对应上传照片,管理照片和设置。

  • Upload/上传照片 照片上传成功后,可以复制照片链接,格式有http链接和markdown链接
  • Gallery/管理照片 在这里可以找到之前上传的图片,也可以删除图片。
  • Setting/设置 Profiles-->保存后,可以将setting参数保存在粘贴板,建议将参数粘贴到私有笔记中。后面在其它终端可以复制导入该配置。

 

```json {

"s3": {

"endpoint": "https://thisisasample.r2.cloudflarestorage.com/",

"bucket": "pics",

"accKeyId": "thisisasample",

"secretAccKey": "thisisasample",

"region": "WNAM",

"pubUrl": "https://pics.workapp.uk",

"forcePathStyle": true

},

"app": {

"enableAutoRefresh": true,

"enableFuzzySearch": true,

"fuzzySearchThreshold": 0.6,

"convertType": "none",

"compressionMaxSize": 1,

"compressionMaxWidthOrHeight": "",

"keyTemplate": "",

"noLongerShowRootPage": true

}

} ```

References

January 14, 2023

如何建一个只有两个人的微信群


春节到了,想发个拼手气红包跟老婆一起抢着玩,看看谁的手气好。没想到微信的拼手气红包,必须要在群里才发得出去,然而微信又不支持直接创建只有
2人的群。红包若是发在大群里,手慢了怕是会打了水漂,伤了家庭和气。

发现2个建立2人群的办法,分享出来:

面对面建群

偶然的机会发现,面对面建群时,若是只把密码分享给一个人,这样就得到了一个只有2人的群了。你若不分享进群密码,你甚至可以得到一个单人群。

面对面建群

踢人法

俗话说得好“三人行,必有电灯泡”,拉个好(dian)朋(deng)友(pao)先建一个3人群,然后以迅雷不及掩耳之速将TA删去,这样就得到了一个2人群。


通过以上方法,就可以快速的建立一个二人小群了。




February 14, 2021

如何在Mac系统使用命令行写入软路由OpenWrt系统固件(img镜像)

我最近在摸索软路由系统,把最近的学习体会总结一下。

市面上许多Modem(中兴、华为),路由器(Asus华硕、网件Netgear)大都是是基于Linux开发。我在使用的软路由系统OpenWrt是基于Linux开源开发的,这个OpenWrt是目前非常热门的一个开源软件,小米路由器系统就是在OpenWrt基础上做的进一步开发的(非开源)。


Mac系统是基于Unix开发,Linux又是基于Linux kernel的类Unix系统。由于Mac系统与Linux系统在“血缘”上的亲近,它们有许多运行逻辑都是相似的,特别是Termianl的命令。使用Mac系统写入固件非常方便,不需要下载额外的软件。


介绍一下我的硬件:

  • 一台iMac 2019(使用Big Sur系统);
  • 一台Friendly R2SR2Sarm架构的开发板,配置有21000M网口,目前有较多的软路由固件可以使用;
  • 存储介质我用的TF卡(32G Sandisk),配上买TF卡送的SD卡套,就能直接插入iMacSD卡槽使用。若电脑没有SD卡槽可以搭配一个USB SD读卡器。


下面我就来说一说,如何在Mac系统使用命令行写入软路由OpenWrt系统固件(img镜像)。


第1步:打开terminal


第2步:查询TF卡的磁盘名称,记下要写入的TF卡在你的系统中的磁盘名称是什么,我这里查询到的磁盘名称是disk2。如果你不确定你的TF卡的磁盘名称,你可以在插卡前查询一次,插卡后再查询一次,二次的差异就是这张TF卡的磁盘名称了。

在terminal输入:

diskutil list


第3步:卸载U盘/SD卡,Mac系统为了防止你将镜像写入了系统盘,不允许往正在使用的磁盘写入img镜像,所以需要将目标磁盘挂起才能写入,而系统盘由于正在使用无法被挂起。这里一定要填写正确的磁盘名称。

在terminal输入:

diskutil unmountDisk /dev/disk2


第4步:写入镜像,将你的固件文件位置和磁盘位置替掉,回车后输入你的电脑密码,然后请耐心等待数分钟,这个过程中千万不要退出terminal。tips:你输入完“sudo dd if=”后,可以把镜像文件拖入terminal中,这样就可以避免录入那么长的文件地址。

在terminal输入:

sudo dd if=./openwrt-18.06.2-x86-generic-combined-ext4.img of=/dev/disk2


第5步:看到写入成功提示后,推出U盘/SD卡。

在terminal输入:

diskutil eject /dev/disk2


这时一张灌录了OpenWrt系统的TF启动盘就做好了,将TF卡插入R2S,然后连上电源,OpenWrt系统会自动启动。


谢谢。


February 10, 2020

华硕路由器VLAN功能初探:一根网线同时实现上网和IPTV功能

背景:

对于大部分的家庭,网络入口在弱电箱内。弱电箱的空间一般都不大,放下了光猫就很难容纳其他设备了。而弱电箱通过预埋网线,将网络延伸至各个房间。
我家里客厅处于整个房子的中央,是布置网络的理想位置。我家客厅也只有一个网线口,在电视墙的位置,若布置了路由器就不能布置iTV了。这样我只能将路由器放在卧室里,实现了Wi-Fi的覆盖。但这样有两个问题:一个是,家里好几个房间信号比较弱,经常连接不上5GWi-Fi;另外一个是Wi-Fi辐射/路由器的LED灯光影响睡眠质量。为了解决这2个问题,我需要对家庭网络进行改善。

下面看一下我家网络结构和网络设备。
网络拓扑结构-改善前

我家的光猫型号是天邑TEWA-700E,这个光猫的配置1个千兆Lan口、3个百兆Lan口、支持2.4GWi-Fi广播。这个光猫可以理论上可以接入千兆宽带,但是只有1个千兆端口,影响了后续的扩展能力。光猫的2.4GWi-Fi最大支持56mbs,Wi-Fi性能聊胜于无,不过方便用手机连接光猫管理后台。
路由器使用的是华硕RT-AC86U,相关参数请请参考联入光猫Lan1口(1000M口),家庭主要设备通过路由器接入internet。
iTV机顶盒是电信宽带赠送的设备,型号是ZXV10,制造商是ZTE中兴,iTV机顶盒联入光猫Lan2口(100M),由机顶盒直接拨号联入电视网络。

只用一根网线,要实现iTV和路由器同时接入光猫,我考虑过iTV通过光猫的Wi-Fi接入,路由器通过网线接入。但是光猫的Wi-Fi能力太弱,无法支撑视频点播和直播的流量,电视画面经常卡顿,体验非常差。通过网上查阅资料,发现光猫和华硕路由器都支持Vlan功能,能否将这两者的Vlan功能组合起来,会是成功的关键。

光猫的配置:

1、使用telecomadim账户,登陆光猫管理界面(http://192.168.1.1:8080),地址一定要加端口号8080,默认端口80进入的是用户界面。如何获得光猫管理员密码,请参考http://www.myxzy.com/post-473.html
光猫管理登录界面

2、设置internet连接
进入网络连接设置,选择Internet开头的连接名称,即可以对internet连接进行配置。连接模式选择路由,填入ISP提供的宽带账号和密码,选择启用VLAN,取消LAN端口绑定,最后记录下Vlan ID(1022)。VLAN ID可以自己设置成任何数字,只要不和其他连接重复就行。
光猫Internet网络配置

3、设置iTV连接
进入网络连接设置,选择other开头的连接名称,即可以对iTV连接进行配置。封装类型选择PPPoE连接,连接模式选择桥接,选择启用VLAN,取消LAN端口绑定,记录下这里的Vlan ID(1022)。
光猫iTV网络配置

4、VLAN绑定
进入VLAN绑定设置,将Vlan ID 1022/43绑定在网口1(对应路由器的千兆口),“1022”对应“internet连接”,“43”对应“other连接”。这一步一定要操作,若不在这里绑定VLAN,路由器和iTV都无法连接。
光猫VLAN绑定设置



路由器的配置:

光猫的设定完成了,下面进入路由器配置。
1、用自己预设的账户/密码,登陆路由器的后台。

2、内部网络-IPTV设置
进入内部网络(LAN)—>IPTV设置。将“选择ISP设置档”选择为手动设置;互联网VID处填入1022(与光猫设置中的internet VLAN ID 一致);LAN Port3或LAN Port4其中一个的VID处填入43(与光猫设置中的other VLAN ID 一致),我这里选择Lan4口;特殊应用程序中的“使用DHCP路由”选择“Microsoft”,其他设置可以参考图片。这里需要说一点,当“选择ISP设置档”选上了“手动设置”后,“启动组播路由器”该项是无法选择的,估计是固件不支持。
路由器IPTV设置


3、外部网络-互联网连接设置
由于光猫internet连接设置为路由模式,这里就不需要拨号了,“WAN联机类型”选择“动态IP”,其它设置默认就好,具体可以参考图片。最后检查一下双线路界面,确认WAN口为“首选WAN”。
路由器网络连接设置


接线:

路由器和光猫的设置完成了,下面进行网络接线。将光猫Lan1口和路由器Wan口连接,将iTV机顶盒接入路由器Lan4口(和IPTV设置保持一致),改善后网络结构如下图。
网络拓扑结构-改善后



测试:

机顶盒开机测试,顺利进入iTV界面;几个房间的Wi-Fi网速也测试了下,之前的死角都能跑满200M宽带。


总结:

折腾一圈终于成功实现让一个网口承担互联网和iTV的接入,成就感满满。但是还是有2个小遗憾,一个是,internet桥接(即路由器拨号)没有实现,还需要继续研究;另外路由器暂不支持组播路由器功能,希望后续固件能够支持。



参考:

2)设置网络连接 VLAN ID 标记 - BRT-AC828,https://www.asus.com.cn/support/FAQ/1034366/

October 06, 2006

Google收购YouTube

Techcrunch消息:

相传Google即将收购YouTube。我们都知道在再线视频领域Youtube是大佬,而Google这艘网络航母虽然推出了自己的视频产品Google Video,但在市场份额是远不及YouTube的。但是Google有的是现金,而YouTube却老是抱怨资金不足。

相传这次交易将达到16亿美元。我们知道,YouTube曾经公然宣布过,YouTube的价值在15亿至20亿美元之间。真的希望Google能够成功收购YouTube,成为在线视频的领军。

 

Technorati tags: ,

October 05, 2006

Google Group也Beta

Google官方消息,今天Google放出了Google group的Beta版本groups-beta.google.com.还放了照片。

相比non-beta 版本of Google Groups,Google Groups Beta有如下更新

首先当然是版式上面有变化,Google Groups Beta放弃了原版Google Groups的左边导航,右边文章的传统版式,随之而来的是右边导航的模式。

推出了以下新特性:

Page Creation: Create and collaborate on shared web pages, hosted within the group itself.
Customization: Select pictures, colors and styles to give your group its own distinct look.
File sharing: Upload and share your work with others in your group.
Member profiles: Learn more about the other members in your group.

加大了共享的力度。在新版的Google Groups Beta里,用户参与的程度更高,使Google Groups Beta成为了Google 的又一Web2.0应用。

用Picasa往Blogger beta发图片

用过Picasa的用户都知道,Picasa的一大特色就是分享,她支持往Blogger里面照片。于是大家就会问,能不能往Blogger Beta 里面发图片呢?

在一天以前的答案是不能。你会刊到下面的景象。

不过Blogger Beta的用户你不要懊恼,Google是不会忘记用户的。

Blogger buzz消息,Picasa现在也能往Blogger Beta里面发照片拉!我赶紧测试了一下,果然可以:

但是用Picasa发照片还是要注意一点的:

  • 如果你以前是用Blogger帐号登入的Picasa的话,你要赶紧退出登入,然后用你的Google帐户登入Blogger beta
  • 还有你要确定你的Blog开启了backlinks,没有开启可是会失败的哦。

好了,大家赶紧往Blogger beta里面多多发图吧!

Technorati tags: , ,

使用Cloudflare R2/Vercel建立图床管理网站

使用Cloudflare R2/Vercel建立图床管理网站 Overall 我使用Markdown格式的文件记录日常,常常向Markdown文件中插入图片。由于Markdown记录的图片链接是存储在本地的==相对链接==,导出/复制Markdown文件时,离开本机环境后,往...