Skip to content

Commit d011f3d

Browse files
Update B2_Uploader.yml
1 parent 5fff127 commit d011f3d

1 file changed

Lines changed: 44 additions & 8 deletions

File tree

.github/workflows/B2_Uploader.yml

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,21 @@ on:
44
push:
55
branches:
66
- main
7-
87
jobs:
98
upload-to-b2:
109
runs-on: ubuntu-latest
1110

1211
steps:
13-
# 检出代码库
1412
- name: Checkout repository
1513
uses: actions/checkout@v3
1614

17-
# 安装 B2 CLI
1815
- name: Install B2 CLI via pip
1916
run: |
2017
echo "Installing B2 Command Line Tool..."
2118
python3 -m pip install --upgrade pip
2219
pip install b2
2320
echo "B2 CLI installed successfully."
2421
25-
# 准备上传目录
2622
- name: Prepare upload directory
2723
run: |
2824
echo "Creating upload directory..."
@@ -32,24 +28,64 @@ jobs:
3228
cp -r !(upload_dir) upload_dir/
3329
echo "Files copied to upload_dir."
3430
35-
# 使用 B2 CLI 进行授权和差异同步
3631
- name: B2 Sync with Differential Upload
3732
env:
3833
B2_ACCOUNT_ID: ${{ secrets.B2_ACCOUNT_ID }}
3934
B2_ACCOUNT_KEY: ${{ secrets.B2_ACCOUNT_KEY }}
4035
B2_BUCKET_NAME: ${{ secrets.B2_BUCKET_NAME }}
4136
run: |
4237
echo "Authenticating with B2..."
43-
b2 authorize-account $B2_ACCOUNT_ID $B2_ACCOUNT_KEY
38+
# 使用新的 account authorize 命令替代已弃用的 authorize-account
39+
b2 account authorize $B2_ACCOUNT_ID $B2_ACCOUNT_KEY
4440
4541
echo "Starting differential sync..."
4642
b2 sync upload_dir/ b2://$B2_BUCKET_NAME/
4743
4844
echo "Sync completed. Only changed files were uploaded."
4945
50-
# 清理临时文件
46+
- name: Configure CORS for B2 Bucket
47+
env:
48+
B2_ACCOUNT_ID: ${{ secrets.B2_ACCOUNT_ID }}
49+
B2_ACCOUNT_KEY: ${{ secrets.B2_ACCOUNT_KEY }}
50+
B2_BUCKET_NAME: ${{ secrets.B2_BUCKET_NAME }}
51+
run: |
52+
echo "Authenticating with B2 for CORS configuration..."
53+
# 使用新的 account authorize 命令替代已弃用的 authorize-account
54+
b2 account authorize $B2_ACCOUNT_ID $B2_ACCOUNT_KEY
55+
56+
# 不再使用已弃用的 get-bucket 命令来获取 Bucket ID,因为 update-bucket 命令通常可以直接使用桶名
57+
# 创建CORS规则JSON文件
58+
cat > cors_rules.json << EOF
59+
[
60+
{
61+
"corsRuleName": "allow-all",
62+
"allowedOrigins": ["*"],
63+
"allowedHeaders": ["*"],
64+
"allowedOperations": [
65+
"s3_get", # S3兼容的获取操作
66+
"s3_put", # S3兼容的上传操作
67+
"s3_delete", # S3兼容的删除操作 :cite[3]
68+
"b2_download_file_by_id",
69+
"b2_download_file_by_name",
70+
"b2_upload_file"
71+
# 注意:b2_upload_part 是否包含在你的密钥权限中?根据你的需求添加。
72+
],
73+
"maxAgeSeconds": 3600
74+
}
75+
]
76+
EOF
77+
78+
# 更新存储桶的CORS规则,使用桶名而非ID
79+
b2 update-bucket --corsRules cors_rules.json $B2_BUCKET_NAME allPublic
80+
# 如果上述命令因桶名问题失败,可以尝试先获取桶ID,但注意使用新命令:
81+
# BUCKET_ID=$(b2 bucket get $B2_BUCKET_NAME --format json | jq -r '.bucketId')
82+
# 然后使用 b2 update-bucket --corsRules cors_rules.json $BUCKET_ID allPublic
83+
84+
echo "CORS rules updated to allow all origins."
85+
5186
- name: Clean up
5287
run: |
53-
echo "Removing upload directory..."
88+
echo "Removing upload directory and temporary CORS file..."
5489
rm -rf upload_dir
90+
rm -f cors_rules.json
5591
echo "Cleanup completed."

0 commit comments

Comments
 (0)