S3 Object Storage HOSTKEY¶
在这篇文章中
服务说明¶
什么是 HOSTKEY S3 Object Storage
HOSTKEY 的 S3 Object Storage 是一种用于存储非结构化数据的可扩展解决方案。该服务完全兼容 Amazon Simple Storage Service (S3) 规范,允许您在无需修改代码的情况下使用现有的 S3 兼容工具、应用程序和工作流。
核心功能¶
- 创建独立的存储 - 在 Free Beta 1 方案的免费测试期内,用户最多可以创建 3 个独立的 S3 storage buckets;
- 独立于 VPS/VDS - S3 storages 独立运行,不需要租用 HOSTKEY 服务器;
- 创建 Buckets - 创建存储时,会自动创建一个具有唯一名称的首个 bucket。关于创建 Buckets:在测试期间,用户可以在每个 S3 storage 中最多创建 10 个 buckets;
- S3 兼容访问 - 全面支持所有数据操作的标准 Amazon S3 协议;
- 可与任何 S3 客户端配合使用 - 使用 S3 Browser、Cyberduck、boto3 以及其他 S3 兼容工具;
- 安全访问 - 通过 HTTPS 协议使用 Access Key 和 Secret Key 进行授权;
- 简单的凭据管理 - 通过您账户的 Web 界面生成和查看 access keys;
- 现成的方案 - 提供具有固定存储容量和带宽的方案选择。
技术参数¶
- Endpoint URL:
https://s3-nl.hostkey.com; - 协议: HTTPS (SSL/TLS);
- 授权: AWS Signature Version 4。
浏览器访问与 CORS¶
在 Web 应用程序中使用 S3 Object Storage(通过 fetch/XHR 从浏览器直接访问)时,必须在 bucket 端配置 CORS 规则。您可以使用 API/CLI (PutBucketCors 方法) 自行配置 CORS 策略。
Web 应用程序的推荐参数:
- Allowed Origins: 您的域名 URL(例如
https://your-app.com)。 - Allowed Methods:
GET, PUT, POST, HEAD。 - Allowed Headers:
Authorization, Content-Type, Content-MD5, x-amz-*。 - Expose Headers:
ETag(Multipart Upload 正常工作所必需)。
预签名 URL 支持¶
S3 Object Storage 完全支持临时访问机制:
- Presigned GET/PUT URL:用于上传和下载的签名链接生成。
- Multipart Upload:支持通过
part-URL上传大文件,并通过CompleteMultipartUpload完成操作。
警告
目前,由于 DDoS-Guard 防护系统的原因,从浏览器/curl 直接向某些端点发送请求可能会受到限制。我们正在努力消除网络限制,以确保客户端可以直接无缝传递 presigned 请求 (SigV4)。
如果您在从浏览器访问端点时遇到超时,请联系技术支持。
价格¶
S3 storage 按付费模式提供。您可以在此处查看当前的定价方案。您也可以增加您的存储和流量容量,并按“按需计费”的方式支付。额外使用的费用按天计算。
在订购服务时,将根据所选定价方案的条款,从您的账户余额中扣除一个月实际使用量的资金。随后,后续月份的使用费用以及超出资源限制的费用也将从您的账户余额中扣除。
要查看您的账单历史记录,请前往 Invapi 用户资料中的 Balance & Payments 菜单,并导航至 Billing Details 部分。

在 Billing Details 部分,您可以查看与此账户关联的所有附加服务(Managed Apps, S3)的交易历史记录,以及该账户收取的总金额。每项服务费用会在每月账单周期内单独列出。

警告
如果您的账户余额不足以支付续费时的服务费用,或者在超出资源使用限制时,系统会将补足余额的账单发送到您注册账户时指定的电子邮件地址。届时服务将被暂停。如果未在 3 个日历日内支付账单,服务将被删除,并且在债务清偿前将无法订购新服务。
账单明细会在报告月后的次月第 2 天 UTC 时间 05:00 生成。您可以在 Invapi 的 Balance & Payments 部分的 Billing Details 选项卡下查看账单明细。账单中的金额按日历月计算,并包含服务使用费用。可以生成一份包含所有附加服务总额的单一合并账单。
警告
免费的 "Free Beta" 方案不再接受新订单。如果您正在使用 "Free Beta" 方案,可以在当前条款下继续使用。未来,所有现有的 "Free Beta" 用户都将迁移到付费的 "Standard Storage" 方案。我们会提前通知您迁移的时间线和条款。
备注
如果您想扩展 "Free Beta" 方案的限制并使用可扩展的 S3 Object Storage,可以通过在您的 HOSTKEY 个人账户中订购来手动切换到付费的 "Standard Storage" 方案。
创建 S3 Storage¶
-
登录您的 Invapi 账户
-
前往 S3 Storage 部分;
-
创建新存储:

- Region: 选择区域(默认
NL- 荷兰); - Bucket name: 输入 bucket 名称(例如
bde347688-testbucket):- 名称必须是唯一的;
- 最多 63 个字符;
- 仅限小写字母、数字和连字符;
- 必须以字母或数字开头和结尾。
- Plan: 选择定价方案(例如
Standart)。点击方案名称进行选择; - 点击
Create S3 Storage。
- Region: 选择区域(默认
创建存储后,系统会提示您支付订单费用

Invapi 中的 S3 Storage Control Panel¶
成功付款后,您将被重定向到 Your Independent Storages 面板(或通过左侧菜单选择 S3 Storage),在这里您可以:
- 查看已付费的存储及其资费
- 创建一个新的独立 S3 storage
- 从列表中选择特定的存储以查看其详情
- 查看存储容量和流量使用的统计数据
- 查看连接到该存储的凭据
- 向当前存储添加新的 buckets
- 查看已添加的 buckets 列表及其统计数据
- 对 buckets 执行操作

在 Invapi 中获取 S3 Storage 凭据¶
-
在您的 storages 列表中,找到已创建的存储并进入 Credentials 选项卡:

-
复制凭据:
您需要:
- Host Name (Endpoint URL):
https://s3-nl.hostkey.com; - S3 User ID: (例如
oab56UivbdcUURCTrMCrcB86YWzyy1hB); - Access Key: 点击
以显示 key; - Secret Key: 点击
以显示 key。
保存这些数据 - 连接时会需要用到。
- Host Name (Endpoint URL):
在 Invapi 中管理 S3 Storage Buckets¶
直接在 Invapi 的 S3 storage 界面中,可以执行以下 bucket 操作:
- 查看该 bucket 在存储中所占用的空间以及其中的对象数量;
- 删除 bucket;
- 通过点击其名称所在的行来查看 bucket 内容;
- 查看 bucket 中文件的文件大小和创建日期信息;
- 在 bucket 中搜索文件;
- 从 bucket 中删除单个文件。

通过 S3 Browser 使用¶
-
下载免费版的 S3 Browser:https://s3browser.com;
-
添加新账户:

- 打开 S3 Browser;
- 点击 Accounts >>
Add New Account。
-
填写表单:
- Display name:
HOSTKEY S3(任何方便的名称); - Account type:
S3 Compatible Storage(不是 Amazon S3 Storage!); - API endpoint:
s3-nl.hostkey.com(不带https://); - Access Key ID: 粘贴来自 HOSTKEY 面板的 Access Key;
- Secret Access Key: 粘贴来自 HOSTKEY 面板的 Secret Key;
- Use secure transfer (SSL/TLS): 保持勾选状态。
- Display name:
-
点击
Add new account; -
操作文件:

成功连接后,您将看到:
- 左侧的 Bucket list;
- 右侧的 Files in bucket;
- 管理按钮:
Upload,Download,Delete,New Folder,Refresh。
可用操作:
Upload- 上传文件;Download- 下载文件;Delete- 删除文件;New Folder- 创建文件夹;Refresh- 刷新列表。
基本文件操作¶
通过 S3 兼容客户端连接到 S3 storage 后,可以使用以下操作:
上传文件¶
-
通过 S3 Browser:
- 在左侧面板中选择一个 bucket;
- 点击
Upload按钮或Upload folder(s); - 从您的电脑中选择文件;
- 确认上传:

-
通过拖放:
- 直接将文件从资源管理器拖入 S3 Browser 窗口。
下载文件¶
- 在 bucket 中选择一个文件;
-
点击
Download按钮,或右键点击并选择Download:
-
指定要在电脑上保存文件的文件夹。
删除文件和文件夹¶
- 选择一个文件或文件夹;
-
点击
Delete按钮,或按键盘上的Delete键:
-
确认删除。
警告
文件删除是不可逆的。请确保您已备份重要数据。
创建文件夹结构¶
- 选择一个 bucket 或文件夹;
-
点击
New Folder:
-
输入文件夹名称:

-
点击
Create new folder。
复制和移动文件¶
- 复制 (Copying): 选择一个文件 > 右键点击 > Copy > 前往目标文件夹 > 右键点击 > Paste;
- 移动 (Moving): 按住鼠标左键将文件拖动到目标文件夹。
重命名文件¶
- 右键点击文件;
-
选择 Rename:

-
输入新名称;
- 按下键盘上的
Enter键。
管理访问权限 (ACL)¶
- 右键点击文件或 bucket;
-
在右键菜单中,选择 Edit Permissions (ACL):

-
在打开的窗口中,为用户配置访问权限:
- Owner - 对对象的完全控制权;
- Any AWS Users - 任何 AWS 用户的访问权限;
- All Users - 所有人的公共访问权限。
-
对于每个用户类别,您可以设置:
- Full Control - 完全控制;
- Read - 读取对象;
- Write - 写入/修改对象;
- Read Permissions - 读取访问权限;
- Write Permissions - 修改访问权限:

-
为了快速配置,可以使用以下按钮:
- Make public - 将文件设为公开;
- Make private - 将文件设为私有。
-
配置完成后,点击 Apply changes 保存。
安全
请谨慎对待公共访问。不要将机密数据公开。默认情况下,建议仅保留所有者 (Owner) 的完全控制权。
生成 Web 链接¶
要在 S3 Object Storage 中为文件或文件夹创建公共链接:
- 右键点击文件;
-
在右键菜单中,选择 Generate Web URL:

-
在打开的 Web URL Generator 窗口中,配置链接生成参数:
-
Use secure transfer (HTTPS) - 使用安全连接(建议用于机密数据);
- Expiration - 选择链接过期时间;
-
Hostname - 主机名选择:
- Use default host name - 使用默认地址(例如
https://s3-nl.hostkey.com/bfcc62b88-testbucket/); - 或指定您自己的域名;
- Use default host name - 使用默认地址(例如
-
配置参数后,系统将生成文件的完整链接,例如:
缩短链接:¶
-
要创建短链接,点击
Shorten按钮并选择一个服务:- Shorten with Bitly - 使用 Bitly 缩短;
- Shorten with TinyURL - 使用 TinyURL 缩短;
- Configure... - 配置缩短服务;

-
成功缩短后,您将收到一个短链接(例如
https://tinyurl.com/2dhcsk8y); -
使用以下按钮:
Copy- 将链接复制到剪贴板;Close- 关闭生成器窗口。

警告
若要通过 Web 链接实现对文件的公共访问,必须通过 ACL 将文件设置为公开。使用缩短的链接访问时,系统会自动下载该文件。
备注
有关 S3 Browser 使用方法的详细信息,请参阅 开发者文档。
备注
有关 Amazon S3 使用方法的详细信息,请参阅 AWS 官方文档。
通过 AWS CLI 使用 HOSTKEY S3¶
安装 AWS CLI¶
AWS CLI 可以通过两种方式安装。选择其中一种:
方法 1:通过 pip 安装(通用)¶
优点:
- 命令简单,安装方便;
- 易于更新;
- 支持所有平台 (Windows, Linux, macOS)。
缺点:
- 需要已安装 Python;
- 在某些终端中可能会显示警告。
安装:
验证安装:
更新:
方法 2:Windows MSI 安装程序(推荐)¶
优点:
- 不需要 Python;
- 终端中无警告;
- 系统级安装,环境整洁。
缺点:
- 仅限 Windows;
- 必须手动下载更新。
通过终端安装:
安装后:
- 重启终端;
- 验证安装。
预期结果:
另一种安装方法:
- 手动下载:https://awscli.amazonaws.com/AWSCLIV2.msi;
- 双击运行安装程序;
- 重启终端。
警告
如果您同时安装了两个版本(pip 和 MSI),可能会导致冲突。最好只使用一种方法。
检查冲突:
如果显示多个路径,请删除其中一个版本:
配置与 HOSTKEY S3 的连接¶
1. 从 HOSTKEY 面板获取凭据
- 登录您的 Invapi 账户;
- 前往 S3 Storage 部分;
- 打开 "Credentials" 选项卡;
-
复制以下数据:
对于 S3 用户标识符 (Access Key ID):
- 点击眼睛图标以显示 key;
- 手动或通过
Copy按钮复制显示的数值。
对于密钥 (Secret Access Key):
- 点击眼睛图标以显示 key;
- 手动或通过
Copy按钮复制显示的数值。
警告
您必须先点击
图标来显示真实的 key 值;只有这样才能正确地进行复制。 -
您还需要:
- Host name:
https://s3-nl.hostkey.com; - Region: 面板中显示的区域(例如荷兰为
nl)。
2. 设置配置文件 (Profile)
提示输入时,请输入:
AWS Access Key ID [None]: your_access_key_id
AWS Secret Access Key [None]: your_secret_access_key
Default region name [None]: nl
Default output format [None]: json
示例:
AWS Access Key ID [None]: s3uid_XXXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]: nl
Default output format [None]: json
3. 验证配置
预期输出:
NAME : VALUE : TYPE : LOCATION
profile : hostkey : manual : --profile
access_key : ****************xxxx : shared-credentials-file :
secret_key : ****************xxxx : shared-credentials-file :
region : nl : config-file : ~/.aws/config
4. 验证连接
预期结果(您的 buckets 列表):
基本文件操作¶
查看 bucket 内容¶
示例:
结果:
上传文件¶
创建测试文件:
将文件上传到 bucket:
示例:
aws s3 cp test_new.txt s3://your-bucket-name/ --profile hostkey --endpoint-url https://s3-nl.hostkey.com
结果:
下载文件¶
aws s3 cp s3://bucket-name/file.txt ./local-file.txt --profile hostkey --endpoint-url https://s3-nl.hostkey.com
示例:
aws s3 cp s3://your-bucket-name/test.txt ./downloaded.txt --profile hostkey --endpoint-url https://s3-nl.hostkey.com
结果:
在 Windows 上检查下载的文件¶
在 Linux/macOS 上检查下载的文件:
删除文件¶
示例:
结果:
同步文件夹¶
将文件夹上传到 bucket:
aws s3 sync path/to/local/folder s3://bucket-name/path-in-bucket/ --profile hostkey --endpoint-url https://s3-nl.hostkey.com
示例:
aws s3 sync C:\Users\User\Documents\Test s3://your-bucket-name/remote-folder/ --profile hostkey --endpoint-url https://s3-nl.hostkey.com
结果:
upload: Documents\Test\file1.txt to s3://your-bucket-name/remote-folder/file1.txt
upload: Documents\Test\file2.docx to s3://your-bucket-name/remote-folder/file2.docx
从 bucket 下载文件夹:
aws s3 sync s3://bucket-name/path-in-bucket/ path/to/local/folder --profile hostkey --endpoint-url https://s3-nl.hostkey.com
带进度显示:
aws s3 sync C:\Users\User\Documents\Test s3://your-bucket-name/backup/ --profile hostkey --endpoint-url https://s3-nl.hostkey.com --progress
警告
如果路径包含空格,请务必使用引号。
正确写法:
aws s3 sync "C:\Users\Name\My Documents" s3://bucket/docs/ --profile hostkey --endpoint-url https://s3-nl.hostkey.com
错误写法(会导致报错):
aws s3 sync C:\Users\Name\My Documents s3://bucket/docs/ --profile hostkey --endpoint-url https://s3-nl.hostkey.com
其他命令¶
创建 bucket¶
删除空 bucket¶
删除包含所有内容的 bucket¶
在 bucket 之间复制文件¶
aws s3 cp s3://source-bucket/file.txt s3://dest-bucket/file.txt --profile hostkey --endpoint-url https://s3-nl.hostkey.com
移动文件¶
aws s3 mv s3://bucket-name/old-file.txt s3://bucket-name/new-file.txt --profile hostkey --endpoint-url https://s3-nl.hostkey.com
故障排除¶
错误:"aws" 不是内部或外部命令¶
原因: 未安装 AWS CLI 或未将其添加到 PATH。
解决方案:
- 安装后重启终端;
- 使用命令
where aws验证安装(应显示路径); - 如果问题依旧,请重新安装 AWS CLI。
错误:Invalid bucket name (无效的 bucket 名称)¶
原因: Bucket 名称不正确。
解决方案: 请使用 HOSTKEY 面板中完全一致的 bucket 名称(例如 prefix-testbucket)。
错误:AccessDenied (拒绝访问)¶
原因: 凭据错误或权限不足。
解决方案:
- 在 HOSTKEY 面板中检查 Access Key 和 Secret Key;
- 重新创建配置文件。
pip 版本与 MSI 版本冲突¶
症状: where aws 命令显示两个路径。
解决方案: 删除其中一个版本(参见“不要混用安装方法”部分)。
重置配置¶
Windows:
Linux/macOS:
重新设置:
配置文件位置¶
Windows:
Linux/macOS:
文件内容:
- credentials - Access Key 和 Secret Key;
- config - 区域 (region) 和输出格式设置。
用于验证的常用命令¶
AWS CLI 版本:
可执行文件位置:
配置文件信息:
软件包信息(针对 pip 版本):
更新(针对 pip 版本):
备注
有关 AWS CLI 使用方法的详细信息,请参阅 AWS 官方文档。