将备份从HQbird发送到Amazon S3
为了将HQbird创建的备份发送到Amazon S3,最简单的方法是使用Amazon CLI(命令行界面)。
使用HQbird中可用的备份后脚本功能(参见此处的“执行shell命令”):指定一个命令文件,该文件接收所创建备份的路径作为第一个参数。
Windows命令文件示例:
@echo off
setlocal EnableDelayedExpansion
:: S3配置 - 请将这些替换为您的实际值
set "AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_HERE"
set "AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY_HERE"
set "S3_BUCKET=your-bucket-name"
set "S3_REGION=us-east-1"
:: 检查是否提供了文件路径
if "%~1"=="" (
echo 错误:请提供要上传的文件路径。
echo 用法:%0 [文件路径]
exit /b 1
)
:: 检查文件是否存在
if not exist "%~1" (
echo 错误:未找到文件:%~1
exit /b 1
)
:: 从路径中获取文件名
for %%F in ("%~1") do set "FILE_NAME=%%~nxF"
echo 正在将 %FILE_NAME% 上传到S3存储桶 %S3_BUCKET%...
:: 检查是否安装了AWS CLI
where aws >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo 错误:未安装AWS CLI或不在PATH中。
echo 请从 https://aws.amazon.com/cli/ 安装AWS CLI
exit /b 1
)
:: 为此会话设置AWS凭据
set "AWS_ACCESS_KEY_ID=%AWS_ACCESS_KEY_ID%"
set "AWS_SECRET_ACCESS_KEY=%AWS_SECRET_ACCESS_KEY%"
set "AWS_DEFAULT_REGION=%S3_REGION%"
:: 上传文件到S3
aws s3 cp "%~1" "s3://%S3_BUCKET%/%FILE_NAME%" --region %S3_REGION%
if %ERRORLEVEL% equ 0 (
echo 上传成功!
echo 文件可通过以下地址访问:https://%S3_BUCKET%.s3.%S3_REGION%.amazonaws.com/%FILE_NAME%
) else (
echo 上传失败,错误代码为 %ERRORLEVEL%
)
endlocal
exit /b