本页面介绍如何将对象上传到 Google Distributed Cloud (GDC) 气隙存储分区以及如何从该存储分区下载对象。
准备工作
项目命名空间用于管理 Management API 服务器中的存储桶资源。您 必须拥有项目才能使用存储分区和对象。
您还必须拥有相应的存储桶权限才能执行以下操作。请参阅授予存储桶访问权限。
对于双区域存储分区,请配置 kubectl 以访问 Global API 服务器。按照 Global API 服务器资源 中的步骤操作,并将 GLOBAL_API_SERVER 环境变量设置为 kubeconfig 文件。
对象命名准则
请按照以下准则为对象命名:
- 为对象命名时,请使用 UTF-8 字符。
- 长度介于 1 到 55 个字符之间。
- 请勿包含任何个人身份信息 (PII)。
将对象上传到存储分区
控制台
- 在导航菜单中,点击对象存储 。
- 点击要将对象上传到的存储桶的名称。
- 可选:如果要创建文件夹来存储对象,请依次点击创建文件夹 > 输入文件夹名称 > 点击创建 。
- 直接点击上传文件 ,或进入刚刚创建的文件夹,然后点击上传文件 。
- 选择所需的文件,然后点击打开 。
- 等待上传成功的确认消息。
gdcloud
如需上传对象,请运行以下命令:
gdcloud storage cp LOCAL_PATH s3://REMOTE_PATH
gdcloud storage cp s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME
gdcloud storage mv s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME
以下命令需要 FULLY_QUALIFIED_BUCKET_NAME。如需获取完全限定的存储桶名称,请使用查看存储桶配置部分中的 GET 或 DESCRIBE 命令。
以下命令会将本地目录中的所有文本文件上传到存储桶:
gdcloud storage cp *.txt s3://FULLY_QUALIFIED_BUCKET_NAME
以下命令会将本地目录中的多个文件上传到存储桶:
gdcloud storage cp abc1.txt abc2.txt s3://FULLY_QUALIFIED_BUCKET_NAME
如需将文件夹上传到存储桶,请使用 --recursive 选项复制整个目录树。以下命令会上传目录树 dir:
gdcloud storage cp DIRECTORY_NAME s3://FULLY_QUALIFIED_BUCKET_NAME --recursive
对于大型对象,请执行分段上传;或者,当您要上传的文件大于 15 MB 时,请自动使用分段上传。 在这种情况下,文件会拆分为多个部分,每个部分的大小为 15 MB。 最后一部分较小。每个部分都会单独上传,并在传输完成后在目标位置重新构建。
如果某个部分的上传失败,您可以重新开始上传,而不会影响已上传的其他部分。
有两个与分段上传相关的选项:
--disable-multipart:停用所有文件的分段上传。--multipart-chunk-size-mb=SIZE:设置分段上传的每个分块的大小。
大于 SIZE 的文件会自动以 多线程分段方式上传。较小的文件会使用传统方法上传。SIZE 以 MB 为单位。默认分块大小为 15 MB。允许的最小分块大小为 5 MB,最大分块大小为 5 GB。
从存储分区下载对象
控制台
- 在导航菜单中,点击对象存储 。
- 点击包含对象的存储桶的名称。
- 选中要下载的对象名称旁边的复选框。
- 点击下载 。
gdcloud
如需从存储桶获取对象,请执行以下操作:
gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/OBJECT LOCAL_FILE_TO_SAVE
如需将存储桶中的所有文本文件下载到当前目录,请执行以下操作:
gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/*.txt .
如需将存储桶中的文本文件 abc.txt 下载到当前目录,请执行以下操作:
gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt .
如需下载文件的旧版本,请先列出文件的所有版本:
gdcloud storage ls s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt --all-versions
输出示例:
s3://my-bucket/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND
s3://my-bucket/abc.txt#ODgzNEYzQ0MtMzEzRS0xMUVFLTk2NEItMjI1MTAwQkJENjND
s3://my-bucket/abc.txt#ODNCNDEzNzgtMzEzRS0xMUVFLTlDOUMtQzRDOTAwQjg3RTg3
然后,将存储桶中的特定版本的文本文件 abc.txt 下载到当前目录:
gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND .
使用自定义 AEADKey
如需进行更精细的自定义,您可以创建自己的 AEADKey,并在加密存储桶中的对象时直接使用它。这样,您就可以完全控制加密密钥,而无需使用默认密钥。按照创建密钥中的步骤创建新的 AEADKey,并确保它与您打算使用的存储桶位于同一 Namespace 中。然后,每当发送请求时,请确保 HEADER 配置了 x-amz-server-side-encryption: SSE-KMS 和 x-amz-server-side-encryption-aws-kms-key-id: NAMESPACE_NAME/AEADKey_NAME