# Qiniu

{% code fullWidth="true" %}

```
命令：
   singularity storage update s3 qiniu - 七牛对象存储（Kodo）

用法：
   singularity storage update s3 qiniu [命令选项] <name|id>

说明：
   --env-auth
      从运行环境中获取AWS凭证（环境变量或EC2/ECS元数据，如果没有环境变量）。

      仅当access_key_id和secret_access_key为空时才适用。

      示例：
         | false | 在下一步中输入AWS凭证。
         | true  | 从环境（环境变量或IAM）获取AWS凭证。

   --access-key-id
      AWS访问密钥ID。

      如果要进行匿名访问或者使用运行时凭证，请将其留空。

   --secret-access-key
      AWS密钥（密码）。

      如果要进行匿名访问或者使用运行时凭证，请将其留空。

   --region
      要连接的区域。

      示例：
         | cn-east-1      | 默认端点，如果不确定可以选择此选项。
         |                | 中国东部区域1。
         |                | 需要区域约束为cn-east-1。
         | cn-east-2      | 中国东部区域2。
         |                | 需要区域约束为cn-east-2。
         | cn-north-1     | 中国北部区域1。
         |                | 需要区域约束为cn-north-1。
         | cn-south-1     | 中国南部区域1。
         |                | 需要区域约束为cn-south-1。
         | us-north-1     | 北美区域。
         |                | 需要区域约束为us-north-1。
         | ap-southeast-1 | 东南亚区域1。
         |                | 需要区域约束为ap-southeast-1。
         | ap-northeast-1 | 东北亚区域1。
         |                | 需要区域约束为ap-northeast-1。

   --endpoint
      七牛对象存储的端点。

      示例：
         | s3-cn-east-1.qiniucs.com      | 中国东部区域1的端点
         | s3-cn-east-2.qiniucs.com      | 中国东部区域2的端点
         | s3-cn-north-1.qiniucs.com     | 中国北部区域1的端点
         | s3-cn-south-1.qiniucs.com     | 中国南部区域1的端点
         | s3-us-north-1.qiniucs.com     | 北美区域的端点
         | s3-ap-southeast-1.qiniucs.com | 东南亚区域1的端点
         | s3-ap-northeast-1.qiniucs.com | 东北亚区域1的端点

   --location-constraint
      区域约束，必须设置与区域匹配。

      仅在创建存储桶时使用。

      示例：
         | cn-east-1      | 中国东部区域1
         | cn-east-2      | 中国东部区域2
         | cn-north-1     | 中国北部区域1
         | cn-south-1     | 中国南部区域1
         | us-north-1     | 北美区域1
         | ap-southeast-1 | 东南亚区域1
         | ap-northeast-1 | 东北亚区域1

   --acl
      创建存储桶、存储对象或复制对象时使用的预定义ACL。

      此ACL用于创建对象，如果未设置bucket_acl，则用于创建存储桶。

      获取更多信息请访问[Amazon S3 ACL文档](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)。

      需要注意的是，在服务器端复制对象时会应用此ACL，
      因为S3不会复制源对象的ACL，而是写入一个新的ACL。

      如果acl为空字符串，则不添加X-Amz-Acl:头，并使用默认（private）。

   --bucket-acl
      创建存储桶时使用的预定义ACL。

      获取更多信息请访问[Amazon S3 ACL文档](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)。

      需要注意的是，仅在创建存储桶时应用此ACL。如果未设置它，
      将使用"acl"代替。

      如果"acl"和"bucket_acl"都为空字符串，则不添加X-Amz-Acl:
      头，并使用默认（private）。

      示例：
         | private            | 拥有者具备FULL_CONTROL权限。
         |                    | 其他人没有访问权限（默认）。
         | public-read        | 拥有者具备FULL_CONTROL权限。
         |                    | 所有用户组具备READ权限。
         | public-read-write  | 拥有者具备FULL_CONTROL权限。
         |                    | 所有用户组具备READ和WRITE权限。
         |                    | 通常不建议在存储桶上授予此权限。
         | authenticated-read | 拥有者具备FULL_CONTROL权限。
         |                    | AuthenticatedUsers组具备READ权限。

   --storage-class
      存储新对象时使用的存储类型。

      示例：
         | STANDARD     | 标准存储类型
         | LINE         | 低访问频率存储模式
         | GLACIER      | 归档存储模式
         | DEEP_ARCHIVE | 深度归档存储模式

   --upload-cutoff
      切换到分片上传的文件截止值。

      超过此大小的文件将按分片大小进行分片上传。
      最小值为0，最大值为5 GiB。

   --chunk-size
      上传时使用的分片大小。

      上传超过upload_cutoff的大文件或没有大小信息的文件
      （例如来自"rclone rcat"或使用"rclone mount"、Google照片或Google文档上传的文件）
      将使用此分片大小进行分片上传。

      请注意，每个传输会在内存中缓冲"--s3-upload-concurrency"个此大小的分片。

      如果您正在高速链接上传大文件，且内存充足，则增加此值将加快传输速度。

      当上传已知大小的大文件以保持低于10,000个分片的限制时，
      rclone会自动增加分片大小。

      未知大小的文件将使用配置的chunk_size进行上传。
      由于默认的分片大小为5 MiB，最多可以有10,000个分片，
      因此默认情况下，您可以流式上传的文件的最大大小为48 GiB。
      如果要流式上传更大的文件，则需要增加chunk_size。

      增加分片大小会降低使用“-P”标志显示的进度统计数据的准确性。
      Rclone在分片被AWS SDK缓冲时将其视为已发送，
      而实际上可能仍在上传。更大的分片大小意味着更大的AWS SDK缓冲区和进度报告与实际情况更偏离。

   --max-upload-parts
      多部分上传中的最大部分数。

      此选项定义进行多部分上传时要使用的最大多部分分片数。

      如果某个服务不支持10,000个分片的AWS S3规范，
      这会很有用。

      当上传已知大小的大文件以保持低于指定的部分数限制时，
      rclone会自动增加分片大小。

   --copy-cutoff
      切换到分块复制的文件截止值。

      超过此大小需要服务器端复制的文件将按此大小的分块进行复制。
      最小值为0，最大值为5 GiB。

   --disable-checksum
      不将MD5校验和与对象元数据一起存储。

      通常rclone会在上传之前计算输入的MD5校验和，
      以便将其添加到对象的元数据中。这对于数据完整性检查很有用，
      但对于大文件启动上传可能会导致长时间的延迟。

   --shared-credentials-file
      共享凭证文件的路径。

      如果env_auth设置为true，则rclone可以使用共享凭证文件。

      如果该变量为空，rclone将查找"AWS_SHARED_CREDENTIALS_FILE"环境变量。
      如果环境变量的值为空，则默认为当前用户的主目录。

          Linux/OSX: "$HOME/.aws/credentials"
          Windows:   "%USERPROFILE%\.aws\credentials"

   --profile
      共享凭证文件中要使用的配置文件。

      如果env_auth设置为true，则rclone可以使用共享凭证文件。
      此变量控制在该文件中使用哪个配置文件。

      如果为空，则默认为环境变量"AWS_PROFILE"。
      如果环境变量未设置，则默认为"default"。

   --session-token
      AWS会话令牌。

   --upload-concurrency
      多部分上传的并发数。

      这是同时上传同一文件的分片数。

      如果您正在高速链接上传大量大文件，
      而这些上传未充分利用您的带宽，
      则增加此值可能有助于提高传输速度。

   --force-path-style
      如果为true，则使用路径样式访问；如果为false，则使用虚拟主机样式访问。

      如果为true（默认值），rclone将使用路径样式访问；
      如果为false，则rclone将使用虚拟路径样式。
      有关更多信息，请参阅[AWS S3文档](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro)。

      某些提供商（如AWS、阿里云OSS、网易云COS或腾讯云COS）要求将此设置为false，
      rclone将根据提供商设置自动执行此操作。

   --v2-auth
      如果为true，则使用v2鉴权。

      如果此值为false（默认值），rclone将使用v4鉴权。
      如果设置了此值，则rclone将使用v2鉴权。

      仅在无法使用v4签名的情况下使用，例如旧版本的Jewel/v10 CEPH。

   --list-chunk
      列表块的大小（每个ListObject S3请求的响应列表）。

      该选项也被称为"MaxKeys"、"max-items"或"AWS S3规范的"page-size"。

      大多数服务限制了每个请求的列表响应列表为1000个对象，
      即使请求的数量多于此值。在AWS S3中，这是一个全局最大值，
      不能更改，请参阅[AWS S3](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html)。

      在Ceph中，可以通过"rgw list buckets max chunk"选项来增加该值。

   --list-version
      要使用的ListObjects版本：1、2或0（自动）。

      当S3最初发布时，它仅提供了ListObjects调用以枚举存储桶中的对象。

      但是，在2016年5月，ListObjectsV2调用被引入。这个调用的性能要高得多，如果可能的话应该使用它。

      如果设置为默认值0，则rclone将根据设置的提供商猜测要调用哪个list对象方法。
      如果它猜错了，那么可以在此处手动设置。

   --list-url-encode
      是否对列表进行URL编码：true/false/unset

      某些提供商支持URL编码的列表，如果可用，则在使用控制字符的文件名时这更加可靠。
      如果设置为unset（默认值），则rclone会根据提供商设置选择应用什么，
      但您可以在此处覆盖rclone的选择。

   --no-check-bucket
      如果设置，不会尝试检查存储桶是否存在或创建它。

      如果您知道存储桶已经存在，那么这对于将rclone的事务数量最小化会很有用。

      如果使用的用户没有创建存储桶的权限，则可能需要执行此操作。
      在v1.52.0之前，由于一个bug，此操作将会静默通过。

   --no-head
      如果设置，不会对上传的对象进行HEAD请求来检查完整性。

      这对于将rclone的事务数量最小化会很有用。

      设置此标志意味着如果rclone在PUT上传对象后收到200 OK消息，
      则假设对象已上传正确。

      特别地，它会假设：

      - 元数据，包括修改时间、存储类和内容类型与上传时一致
      - 大小与上传时一致

      对于单部分PUT请求，它从响应中读取以下条目：

      - MD5SUM
      - 上传日期

      对于多部分上传，不会读取这些条目。

      如果上传未知长度的源对象，则rclone将执行HEAD请求。

      设置此标志会增加未检测到的上传失败的几率，
      特别是错误的大小，因此不推荐在正常操作中使用。
      实际上，即使使用此标志，发生未检测到的上传失败的几率也非常小。

   --no-head-object
      如果设置，则在获取对象之前不会执行HEAD请求。

   --encoding
      后端的编码方式。

      有关更多信息，请参阅[概述中的编码部分](/overview/#encoding)。

   --memory-pool-flush-time
      内部内存缓冲池刷新的时间间隔。

      使用需要额外缓冲区的上传（例如分块上传）将使用内存缓冲池进行分配。
      此选项控制多久从池中删除未使用的缓冲区。

   --memory-pool-use-mmap
      是否在内部内存池中使用mmap缓冲区。

   --disable-http2
      禁用S3后端的http2使用。

      目前，s3（特别是minio）后端存在一个无法解决的问题和HTTP/2。
      s3后端默认启用HTTP/2，但可以在此禁用。
      当问题解决后，此标志将被移除。

      请参阅：https://github.com/rclone/rclone/issues/4673，https://github.com/rclone/rclone/issues/3631

   --download-url
      自定义下载的端点。
      这通常设置为CloudFront CDN URL，
      因为通过CloudFront网络下载的数据，
      AWS S3提供更便宜的出口流量。

   --use-multipart-etag
      是否在多部分上传中使用ETag进行验证

      这应为true、false或设置为未设置以使用提供商的默认值。

   --use-presigned-request
      是否使用预签名请求或PutObject进行单部分上传

      如果为false，则rclone将使用AWS SDK的PutObject上传对象。

      rclone版本<1.59会使用预签名请求上传单个分片对象，
      设置此标志为true将重新启用该功能。
      除非在特殊情况下或进行测试，否则不应该使用。

   --versions
      在目录列表中包含旧版本。

   --version-at
      显示文件版本为指定时间的版本。

      参数应为日期，"2006-01-02"，
      日期时间"2006-01-02 15:04:05"或距离现在那么久的时间，例如"100d"或"1h"。

      请注意，使用此选项将不允许进行文件写操作，
      因此无法上传文件或删除文件。

      有关有效格式，请参阅[时间选项文档](/docs/#time-option)。

   --decompress
      如果设置，则会解压缩gzip编码的对象。

      可以向S3上传具有"Content-Encoding: gzip"的对象。
      通常情况下，rclone会将这些文件以压缩对象的形式下载。

      如果设置了此标志，则rclone将在接收到具有"Content-Encoding: gzip"的文件时解压缩它们。
      这意味着rclone无法检查大小和哈希值，但文件内容将被解压缩。

   --might-gzip
      如果后端可能会gzip对象，请设置此标志。

      通常，提供商不会在下载时更改对象。
      如果对象上没有设置"Content-Encoding: gzip"，则在下载时它也不会设置。

      但是，有些服务提供商甚至在未使用"Content-Encoding: gzip"上上传对象时也会gzip对象（例如Cloudflare）。

      出现这种情况的症状可能是接收到以下错误：

          ERROR corrupted on transfer: sizes differ NNN vs MMM

      如果设置了该标志，并且rclone通过Content-Encoding: gzip和分块传输编码下载了一个对象，
      则rclone将实时解压缩该对象。

      如果将此设置为未设置（默认值），则rclone将根据提供商的设置选择应用什么，但您可以在此处覆盖rclone的选择。

   --no-system-metadata
      禁止设置和读取系统元数据


选项：
   --access-key-id value        AWS访问密钥ID。[$ACCESS_KEY_ID]
   --acl value                  创建存储桶、存储对象或复制对象时使用的预定义ACL。[$ACL]
   --endpoint value             七牛对象存储的端点。[$ENDPOINT]
   --env-auth                   从运行环境中获取AWS凭证（环境变量或EC2/ECS元数据，如果没有环境变量）。 （默认值：false）[$ENV_AUTH]
   --help, -h                   显示帮助
   --location-constraint value  区域约束，必须设置与区域匹配。[$LOCATION_CONSTRAINT]
   --region value               要连接的区域。[$REGION]
   --secret-access-key value    AWS密钥（密码）。[$SECRET_ACCESS_KEY]
   --storage-class value        存储新对象时使用的存储类型。[$STORAGE_CLASS]

   高级选项

   --bucket-acl value               创建存储桶时使用的预定义ACL。[$BUCKET_ACL]
   --chunk-size value               上传时使用的分片大小。（默认值："5Mi"）[$CHUNK_SIZE]
   --copy-cutoff value              切换到分块复制的文件截止值。（默认值："4.656Gi"）[$COPY_CUTOFF]
   --decompress                     如果设置，则会解压缩gzip编码的对象。 （默认值：false）[$DECOMPRESS]
   --disable-checksum               不将MD5校验和与对象元数据一起存储。 （默认值：false）[$DISABLE_CHECKSUM]
   --disable-http2                  禁用S3后端的http2使用。 （默认值：false）[$DISABLE_HTTP2]
   --download-url value             自定义下载的端点。[$DOWNLOAD_URL]
   --encoding value                 后端的编码方式。 （默认值："Slash,InvalidUtf8,Dot"）[$ENCODING]
   --force-path-style               如果为true，则使用路径样式访问；如果为false，则使用虚拟主机样式访问。 （默认值：true）[$FORCE_PATH_STYLE]
   --list-chunk value               列表块的大小（每个ListObject S3请求的响应列表）。 （默认值：1000）[$LIST_CHUNK]
   --list-url-encode value          是否对列表进行URL编码：true/false/unset （默认值："unset"）[$LIST_URL_ENCODE]
   --list-version value             要使用的ListObjects版本：1、2或0（自动）。 （默认值：0）[$LIST_VERSION]
   --max-upload-parts value         多部分上传中的最大部分数。 （默认值：10000）[$MAX_UPLOAD_PARTS]
   --memory-pool-flush-time value   内部内存缓冲池刷新的时间间隔。 （默认值："1m0s"）[$MEMORY_POOL_FLUSH_TIME]
   --memory-pool-use-mmap           是否在内部内存池中使用mmap缓冲区。 （默认值：false）[$MEMORY_POOL_USE_MMAP]
   --might-gzip value               设置此标志如果后端可能会gzip对象。 （默认值："unset"）[$MIGHT_GZIP]
   --no-check-bucket                如果设置，不会尝试检查存储桶是否存在或创建它。 （默认值：false）[$NO_CHECK_BUCKET]
   --no-head                        如果设置，不会对上传的对象进行HEAD请求来检查完整性。 （默认值：false）[$NO_HEAD]
   --no-head-object                 如果设置，则在获取对象之前不会执行HEAD请求。 （默认值：false）[$NO_HEAD_OBJECT]
   --no-system-metadata             禁止设置和读取系统元数据 （默认值：false）[$NO_SYSTEM_METADATA]
   --profile value                  共享凭证文件中要使用的配置文件。 [$PROFILE]
   --session-token value            AWS会话令牌。 [$SESSION_TOKEN]
   --shared-credentials-file value  共享凭证文件的路径。 [$SHARED_CREDENTIALS_FILE]
   --upload-concurrency value       多部分上传的并发数。 （默认值：4）[$UPLOAD_CONCURRENCY]
   --upload-cutoff value            切换到分片上传的文件截止值。 （默认值："200Mi"）[$UPLOAD_CUTOFF]
   --use-multipart-etag value       是否在多部分上传中使用ETag进行验证 （默认值："unset"）[$USE_MULTIPART_ETAG]
   --use-presigned-request          是否使用预签名请求或PutObject进行单部分上传 （默认值：false）[$USE_PRESIGNED_REQUEST]
   --v2-auth                        如果为true，则使用v2鉴权。 （默认值：false）[$V2_AUTH]
   --version-at value               显示文件版本为指定时间的版本。 （默认值："off"）[$VERSION_AT]
   --versions                       在目录列表中包含旧版本。 （默认值：false）[$VERSIONS]

```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://data-programs.gitbook.io/singularity/zh/cli-reference/storage/update/s3/qiniu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
