此页面为机器翻译。请阅读英文原文。 English

IBSurgeon 文库

将备份从HQbird发送到Amazon S3

为了将HQbird创建的备份发送到Amazon S3,最简单的方法是使用Amazon CLI(命令行界面)。

使用HQbird中可用的备份后脚本功能(参见此处的“执行shell命令”):指定一个命令文件,该文件接收所创建备份的路径作为第一个参数。

Windows命令文件示例:

Code
@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