上传和下载项目中的存储对象

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

准备工作

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

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

对象命名准则

请遵循以下准则为对象命名:

  • 为对象命名时,请使用 UTF-8 字符。
  • 请勿包含任何个人身份信息 (PII)。

将对象上传到存储分区

控制台

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

CLI

如需上传对象,请运行以下命令:

gdcloud storage cp LOCAL_PATH s3://REMOTE_PATH
gdcloud storage cp s3://REMOTE_SOURCE_PATH s3://REMOTE_MOVE_DESTINATION_PATH
gdcloud storage mv s3://REMOTE_SOURCE_PATH s3://REMOTE_MOVE_DESTINATION_PATH

以下命令需要 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 dir s3://FULLY_QUALIFIED_BUCKET_NAME --recursive

针对大型对象执行分段上传,或者在要上传的文件大于 15 MB 时自动使用分段上传。 在这种情况下,文件会拆分为多个部分,每个部分的大小为 15 MB。 最后一部分较小。每个部分会单独上传,并在转移完成后在目标位置重建。

如果某个部分的上传失败,您可以重新开始上传,而不会影响已上传的任何其他部分。

以下是与多部分上传相关的两个选项:

  • --disable-multipart:针对所有文件停用分段上传。
  • --multipart-chunk-size-mb=SIZE:设置多部分上传中每个块的大小。

大于 SIZE 的文件会自动以多线程分段方式上传。较小的文件使用传统方法上传。SIZE 以兆字节为单位。默认块大小为 15 MB。允许的最小块大小为 5 MB,最大块大小为 5 GB。

从存储分区下载对象

控制台

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

CLI

如需从存储桶中获取对象,请执行以下操作:

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