上传和下载存储对象

本页面介绍如何将对象上传到 Google Distributed Cloud (GDC) 气隙存储分区以及如何从该存储分区下载对象。

准备工作

项目命名空间用于管理 Management API 服务器中的存储桶资源。您 必须拥有项目才能使用存储分区和对象。

您还必须拥有相应的存储桶权限才能执行以下操作。请参阅授予存储桶访问权限

对于双区域存储分区,请配置 kubectl 以访问 Global API 服务器。按照 Global API 服务器资源 中的步骤操作,并将 GLOBAL_API_SERVER 环境变量设置为 kubeconfig 文件。

对象命名准则

请按照以下准则为对象命名:

  • 为对象命名时,请使用 UTF-8 字符。
  • 长度介于 1 到 55 个字符之间。
  • 请勿包含任何个人身份信息 (PII)。

将对象上传到存储分区

控制台

  1. 在导航菜单中,点击对象存储
  2. 点击要将对象上传到的存储桶的名称。
  3. 可选:如果要创建文件夹来存储对象,请依次点击创建文件夹 > 输入文件夹名称 > 点击创建
  4. 直接点击上传文件 ,或进入刚刚创建的文件夹,然后点击上传文件
  5. 选择所需的文件,然后点击打开
  6. 等待上传成功的确认消息。

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。如需获取完全限定的存储桶名称,请使用查看存储桶配置部分中的 GETDESCRIBE 命令。

以下命令会将本地目录中的所有文本文件上传到存储桶:

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。

从存储分区下载对象

控制台

  1. 在导航菜单中,点击对象存储
  2. 点击包含对象的存储桶的名称。
  3. 选中要下载的对象名称旁边的复选框。
  4. 点击下载

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-KMSx-amz-server-side-encryption-aws-kms-key-id: NAMESPACE_NAME/AEADKey_NAME