Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

「图床」上传脚本,基于 cloudflare R2 对象存储

2024-09-12 1 min read Docs Ronan

使用之前需要通过 pip install boto3 安装 boto3 库。

使用方法:usage: python imgs.py input_file

7-10 行填入相应信息并将代码保存为 imgs.py:

  • account_id:账户 id

    cloudflare_R2_account_id

  • access_key_id:s3客户端访问密钥

  • secret_access_key:s3客户端机密访问密钥

    cloudflare_R2_S3_API_Token

  • bucket_name:R2 存储桶名称

    cloudflare_R2_bucket_name

可以直接运行脚本或者将脚本打包为应用程序

import boto3
import os
from botocore.exceptions import ClientError
import argparse

# Cloudflare R2 配置
account_id = "" # 这里填入账户 id
access_key_id = "" # 这里填写 S3 客户端的‘访问密钥’
secret_access_key = "" #这里填写 S3 客户端的‘机密访问密钥’
bucket_name = "" # 这里填入你要上传文件到哪个 R2 存储桶的名称
endpoint_url = f"https://{account_id}.r2.cloudflarestorage.com"

# 创建 S3 客户端
s3 = boto3.client('s3',
                endpoint_url=endpoint_url,
                aws_access_key_id=access_key_id,
                aws_secret_access_key=secret_access_key)

def upload_file(file_path, object_name=None):
    """
    上传文件到 Cloudflare R2 存储桶

    :param file_path: 要上传的本地文件路径
    :param object_name: 在 R2 中的对象名称,如果不指定则使用文件名
    :return: 如果上传成功返回 True,否则返回 False
    """
    if object_name is None:
        object_name = os.path.basename(file_path)

    try:
        s3.upload_file(file_path, bucket_name, object_name)
        print(f"File {file_path} uploaded successfully as {object_name} \n\nhttps://imgs.ronan.us.kg/{object_name}")
        return True
    except ClientError as e:
        print(f"Error uploading file {file_path}: {e}")
        return False

def main():
    parser = argparse.ArgumentParser(description="传入本地或网络图片路径,即可上传到 cloudflare R2 对象存储桶")
    parser.add_argument("local_file_path", help="本地图片路径")

    args = parser.parse_args()

    upload_file(args.local_file_path)

if __name__=="__main__":
    main()

什么是价值观?

2024-09-03 1 min read Docs Ronan

注意:价值观指的是人们认为较有价值的观念(常常不曾言明)。它们树立了一定的行为准则,我们据此来衡量人类行为的品质高下。

你在列举价值观的时候是否遇到了困难?价值观就是我们自己所认可的行为准则,我们希望他人的言行能与之相一致。当我们期望政治代表们能“实话实说”时,我们向他们和我们自身暗示的信息就是:诚实是我们最重视的价值观之一.你可以问间自己,你希望自己的朋友都是些什么样的人,你希望自己的孩子被培养出什么样的行为准则.对诸如此类问题的求解可以帮助你拓宽对价值观的理解.

–《学会提问》

「Gmeek」上传脚本(单篇或批量)

2024-09-03 3 min read Docs Ronan

[!caution]

注意: 该脚本仅适用于通过Gmeek项目搭建的博客网站 在开始使用之前,需要创建 github 的个人 Token

1.创建github个人Token

1.在 GitHub 上任何页面的右上角,单击您的个人资料照片,然后单击 Settings
2.在左侧边栏中,单击 Developer settings(开发人员设置)
3.在左侧边栏中的 Personal access tokens (个人访问令牌) 下,单击 Tokens (classic)
4.选择 Generate new token(生成新令牌),然后单击 Generate new token (classic)
5.在 Note 字段中,为您的令牌指定一个描述性名称。
6.要为您的令牌指定过期时间,请选择 Expiration(过期),然后选择默认选项或单击 Custom(自定义)以输入日期。
7.选择要授予此令牌的范围。要使用令牌从命令行访问存储库,请选择 repo ( 这里一定要打上勾!!! ) 。没有分配范围的令牌只能访问公共信息。
8.滑动到底部,单击 Generate token
9.将新令牌复制到剪贴板并且保管好,令牌只出现一次,一定要保管好!一定要保管好!一定要保管好!

2.使用方法

以下有两个方法,分为sh脚本和python脚本:

[!tip] 建议: Linux与mac系统使用 sh 脚本,Windows使用py脚本体验更佳 也可根据喜好自行采用

2.1配置脚本

对于 sh 脚本

[!important]

使用前需确认以下:

  • 系统已安装curl
  • 系统已安装jq
  • 系统可使用bash

curl、jq 安装方法由于系统不同,方法多样,所以具体安装方法可以自行查找…

在代码开始的前几行,找到以下几个值,在引号里填入自己的信息:

  • TOKEN 为自己创建的Token值
  • OWNER 为自己的github用户名
  • REPO 为自己的Gmeek博客仓库名,一般是 xxx.github.io

对于 py 脚本

1.在开始使用之前,需要安装 requests 模块

Continue reading
Older posts Newer posts