Object Storage 常见问题解答

 

一般问题

什么是 Oracle Cloud Infrastructure Object Storage?

Oracle Object Storage 是一款可扩展、完全可编程、持久耐用的云端存储服务。开发人员和 IT 管理员可以使用此服务以低廉的成本存储和轻松访问无限量的数据。

Oracle Object Storage 有什么用途?

借助 Oracle Object Storage,您可以直接从应用或从云技术平台内部随时安全地存储和检索数据。Oracle Object Storage 与数据内容类型无关,并且支持多种用例。利用该服务,您可以将备份和归档数据发送到异地,可以设计大数据分析工作负载以生成业务洞察,也可以构建横向扩展的 Web 应用。该服务提供的弹性让您可以随着应用的发展由小到大地扩展系统,并且始终只需为您实际使用的资源付费。

Oracle Cloud Infrastructure 的对象存储解决方案有何独特之处?

Oracle Object Storage 服务具有安全、易于管理、高度一致且可扩展的特点。收到数据读取请求后,Oracle Object Storage 将提供写入系统的最新数据副本。Oracle Object Storage 与高性能、高带宽的网络相连,所有计算和对象存储资源都共存于同一网络上,因此,Oracle Cloud Infrastructure 中运行的计算实例能够以很低的延迟访问对象存储。

Oracle Object Storage 服务有哪些核心组件?

对象:任何类型的数据都将以对象的形式存储在 Oracle Object Storage 中。例如,日志文件、视频文件和音频文件都会存储为对象。

存储桶:存储桶是用于存储对象的逻辑容器。存储桶作为一种分组机制,可用来将相关对象存储在一起。

命名空间:命名空间作为一种逻辑实体,让您可以控制个人存储桶的命名空间。Oracle Cloud Infrastructure Object Storage 桶的名称不具全局性。存储桶名称在命名空间内必须唯一,但在不同命名空间之间可以重复使用。每个租户都与一个涵盖所有隔间的默认命名空间(租户名称)相关联。

如何着手使用 Oracle Cloud Infrastructure Object Storage?

注册 OCI Cloud 免费套餐。您可以免费在 Oracle Cloud 上构建、测试和部署应用。

保存在 Oracle Cloud Infrastructure Object Storage 中的数据的持久性如何?

Oracle Object Storage 采用高持久设计,可提供 99.999999999%(十一个 9)的年度持久性。为实现此等持久性,在具有多个可用性域的区域,该服务会将每个对象冗余存储在三个不同的可用性域中,而在具有单个可用性域的区域中,该服务会将每个对象冗余存储在三个不同的故障域中。同时,系统会使用校验和方法主动监视数据完整性;自动检测和修复损坏的数据;此外,它还会自动检测任何数据冗余丢失并进行修复,客户无需对此进行干预,也不会因此受到任何影响。

Object Storage 服务是否使用纠删码技术?

是的,OCI Object Storage 使用各种存储方案,包括纠删码。对象的存储方案不受客户影响,使用的方案可能随着时间的变化而变化。

Oracle Cloud Infrastructure Object Storage 的可靠性如何?

Oracle Object Storage 是一款高度可靠的服务,其设计可用性高达 99.9%。该平台内置了多种保护措施,能够全面监视服务的运行状况,以防止计划外停机。

是否可以将元数据标签分配给对象?

可以。可以使用多个用户指定的元数据键值对来标记对象。有关更多详细信息,请参阅“管理 Object Storage 中的对象”文档

我可以在 Oracle Cloud Infrastructure Object Storage 中保存多少数据?

您可以在 Oracle Cloud Infrastructure Object Storage 中保存无限量的数据。您可以为每个账户创建数千个存储桶,每个存储桶可以容纳无限个对象。每个存储对象的大小可以为 0 至 10 TiB。Oracle 建议您在存储大于 100 MiB 的对象时使用分段上传技术。有关更多信息,请参阅 Oracle Cloud Infrastructure 文档中的服务限额

Oracle Cloud Infrastructure Object Storage 是否特定于可用性域或区域?

Oracle Object Storage 是一款区域性服务,可以通过专用的区域 API 端点进行访问。

原生 Oracle Cloud Infrastructure Object Storage API 端点使用一致的 https://objectstorage.<region-identifier>.oraclecloud.com URL 格式。例如,美国西部 (us-phoenix-1) 中的原生 OCI Object Storage API 端点为 https://objectstorage.us-phoenix-1.oraclecloud.com

Swift API 端点使用一致的 https://swiftobjectstorage.<region-identifier>.oraclecloud.com URL 格式。例如,美国东部 (us-ashburn-1) 中的原生 OCI Object Storage API 端点为 https://swiftobjectstorage.us-ashburn-1.oraclecloud.com

可以从 https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm 中找到所有 OCI 区域的区域标识符。

我的 Oracle Cloud Infrastructure Object Storage 数据存储在哪里?

Oracle Object Storage 在所有 Oracle Cloud Infrastructure 区域中都可供使用,您的数据便是存储在这些区域中。客户可以灵活地选择将其数据存储在哪个区域。您可以在这里找到有关可用区域和可用性域的更多信息。

保存在 Oracle Cloud Infrastructure Object Storage 中的数据的安全性如何?

Oracle Object Storage 是一款高度安全的服务,它与 Oracle Cloud Infrastructure Identity and Access Management 紧密集成。默认情况下,只有通过了身份验证并且明确获得了特定资源访问权限的用户才能访问存储在 Oracle Object Storage 中的数据。系统使用 HTTPS 协议并通过 SSL 端点向/从 Oracle Object Storage 上传/下载数据,并且默认会为所有存储的数据加密。为了增加一层安全性,您还可以在将对象发送到 Oracle Object Storage 之前对其进行加密,从而不仅可以完全控制自己的数据,还能完全控制数据的加密密钥。

Oracle Cloud Infrastructure Object Storage 是否支持对象级权限控制?

OCI Object Storage 除了支持区间级别和存储桶级别的权限外,还支持对象级别的权限。对象级别的权限可保护共享存储桶中的数据免受未经授权的用户的攻击,从而提供多一层安全保障。

您将能够获得以下优势:

  • 对单个对象或一组对象进行细粒度控制
  • 限制用户访问特定操作集的功能,例如获取、创建、删除、重命名、复制

Oracle Identity and Access Management (IAM) 在所有 OCI 服务中提供一致的策略集,允许您在各个级别创建、应用和集中管理详细权限。

是否可以使用 Oracle Cloud Infrastructure Object Storage 作为大数据的主要数据存储?

是的,您可以使用 Oracle Cloud Infrastructure Object Storage 作为大数据的主要数据存储库。这意味着您可以在 Oracle Cloud Infrastructure 上运行大数据工作负载。通过对象存储 HDFS 连接器可以连接到多个主流大数据分析引擎,从而让分析引擎能够直接处理存储在 Oracle Cloud Infrastructure Object Storage 中的数据。您可以在这里了解有关 HDFS 连接器的更多信息。

无论我在哪里都可以访问 Oracle Cloud Infrastructure Object Storage 吗?

只要您能够接入互联网并且具有相应的服务访问权限,您就可以从任何地方访问 Oracle Object Storage。对象存储的访问延迟取决于您从哪里访问该服务:在其他条件相同的情况下,距离越远,延迟越高。举例而言,如果您的数据存储在美国西部地区,那么相比从伦敦或纽约访问数据,您从内华达州访问同样数据的延迟将更低一些。

是否可以恢复已删除或覆盖的数据?

不可以,无法恢复已删除数据和已覆盖数据。

但是,当存储桶上启用对象版本控制时,对象被覆盖或执行不识别版本的删除操作时,数据不会丢失。在这两种情况下,对象的先前内容都将另存为对象的先前版本。以前的版本可以随时访问或恢复,而且只能通过生命周期策略或识别版本的删除操作显式删除。要保护数据,必须在删除或覆盖时启用对象版本控制。

是否有必要备份对象存储数据?

不,您无需备份存储在 Oracle Cloud Infrastructure Object Storage 中的数据。Oracle Object Storage 是一个具有内在高度持久性的存储平台。该平台会将所有对象冗余存储在同一区域中多个可用性域内的多个存储服务器上,还会使用校验和持续监视数据完整性,并自动修复损坏的数据。这些原生的对象存储持久性特征实际上消除了传统备份的必要。

是否可以使用 Oracle Cloud Infrastructure Object Storage 作为本地环境的备份目的地?

无论是从云端还是本地数据中心发起备份,您都可以将 Oracle Object Storage 用作备份目的地。Oracle Cloud Infrastructure Block Volumes 备份将默认存储在 Oracle Cloud Infrastructure Object Storage 中。

您还可以通过 Swift API 集成,将 Oracle RMAN 备份定向到 Object Storage。对于 Oracle RMAN,您需要使用正确的 Swift API 端点。Swift API 端点使用一致的 https://swiftobjectstorage.<region-identifier>.oraclecloud.com URL 格式。例如,美国东部 (us-ashburn-1) 中的原生 OCI Object Storage API 端点为 https://swiftobjectstorage.us-ashburn-1.oraclecloud.com

可以从 https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm 中找到所有 OCI 区域的区域标识符。

是否可以将 Oracle Cloud Infrastructure Object Storage 桶作为传统 NFS/SMB 挂载点挂载到裸金属计算实例上?

暂不支持将存储桶作为 NFS/SMB 挂载点挂载到裸金属计算实例上。目前,您可以使用原生 API、SDK 或 HDFS 连接器访问 Oracle Object Storage。

如何针对 Oracle Cloud Infrastructure Object Storage 的使用进行计量和计费?

Oracle Object Storage 是一款即用即付型服务,按以下使用要素收费:

  • 以“计时存储字节小时数”衡量的每月存储用量,每月汇总一次。
  • 每月收到的请求总数。删除请求免费。
  • 出站互联网传输。前 10TB 的出站传输免费。

请在这里了解 Oracle Cloud Infrastructure Object Storage 的完整定价详情。

在哪里可以找到 Oracle Cloud Infrastructure Object Storage 的 IP 地址范围,以便添加到本地防火墙或 Oracle Cloud Infrastructure 安全列表中?

您可以在 Object Storage 产品文档中找到 Object Storage 的 IP 地址范围。

Oracle Cloud Infrastructure Object Storage 是否支持 CORS?

Oracle Cloud Infrastructure Object Storage API 和 Swift API 返回跨域资源共享 (CORS) 标头;但是,返回的标头已修复,无法编辑。Amazon S3 兼容 API 不返回 CORS 标头。

加密

Oracle Cloud Infrastructure Object Storage 是否支持服务器端加密?

支持。Oracle Cloud Infrastructure Object Storage 支持服务器端加密。Oracle Object Storage 将自动加密其存储的所有数据。客户还可以选择使用客户管理密钥的服务端加密 (SSE-C) 或 Vault 中的主加密密钥。

如何启用 Oracle Cloud Infrastructure Object Storage 的加密功能?

系统会自动为所有数据启用加密,无需客户采取任何措施。

我需要做点什么来在客户端上解密数据吗?

您无需为解密数据而执行任何特定操作,而是可以继续使用普通的 HTTPS GET 请求来检索数据。

你们是否会轮换加密密钥?

是的。我们会根据严格的内部策略频繁轮换加密密钥。

你们是否支持客户端加密?

是的,我们支持客户端加密。您可以在将数据发送到 Oracle Object Storage 之前对其进行加密。通过发送加密数据,您可以完全掌控自己的加密密钥,并建立第二道防线来防范意外和未经授权的数据访问。为了改善这一领域,Oracle 发布了针对客户端加密的 SDK 增强功能。

你们是否同时加密对象数据和用户定义的元数据?

是的。我们会同时加密对象数据以及对象关联的用户定义的元数据。

你们使用哪种加密算法来加密数据?

我们使用 256 位高级加密标准 (AES-256) 对所有数据和加密密钥进行加密。AES-256 是当今公认的非常强大的加密算法之一。

分段上传

我需要将大型对象上传到 Oracle Cloud Infrastructure Object Storage 中,怎样可以优化上传过程?

要将大型对象上传至 Oracle Object Storage,请考虑使用分段上传。分段上传以并行方式上传数据,要比一次性上传大型对象更加快速和高效。当分段上传操作由于某种原因而失败时,您不必重新上传整个对象,而只需重新上传失败的对象部分。建议使用分段上传来上传所有大于 100 MiB 的对象。

OCI Command Line Interface 和 OCI Console 将自动为您执行分段上传。有关分段上传的更多信息,请访问 https://docs.cloud.oracle.com/en-us/iaas/Content/Object/Tasks/usingmultipartuploads.htm

使用分段上传时,是否可以将客户定义的元数据与对象相关联?

可以。发起分段上传时,您可以指定要与对象关联的元数据。上传完所有组成部分并提交对象之后,元数据将与上传的对象相关联。

分段上传最多支持多少个部分?

每个对象最多可分为 1 万个部分,而每个部分最小应为 10 MiB,最大不得超过 50 GiB。我们建议使用分段上传来上传所有大于 100 MiB 的对象。无论划分为多少个部分,上传对象的总大小都不能超过 10 TiB。

如果上传失败,是否可以重新上传某个部分?

是,如果上传因任何原因而失败,您可以重新上传其中的某个部分。重新发起上传时,您必须提供正确的上传 ID 和部分编号。

是否可以替换已经上传的部分?

是的,如果对象尚未提交,您可以替换已经上传的部分。如需替换分段上传中的某个对象部分,请确保使用正确的上传 ID 和部分编号重新发起上传。

是否可以暂停并继续上传对象?

是的,您可以暂停并继续上传对象。使用分段上传时,如果已经开始上传某个部分,则必须让 Oracle Object Storage 完成该部分的上传。Oracle Object Storage 不支持暂停并继续处理正在上传的部分。

从组成部分组合对象并提交之后,是否还能 GET 或 LIST 各个上传部分?

否,一旦完成分段上传并提交对象,就不能再 GET 或 LIST 各个上传部分。如需检索对象的某个部分,您需要使用 Range GET 请求,这是一项不同于分段上传的独立功能。

提交分段上传后,是否可以确定上传对象所使用的对象部分大小?

不可以。在提交分段上传并使用各个部分组装成对象后,无法确定所使用的部分大小。

是否可以在组合对象之前对各个部分重新排序?

否,对象的各个部分无法重新排序。部分编号决定了向对象提交各个部分的顺序。

是否可以使用一个对象的各个部分来组合另一个对象?

否,您无法使用一个对象的各个部分来组合另一个对象。对象只能由具有相同上传 ID 的部分组成。

如果多个上传部分具有相同的部分编号,将会发生什么情况?

如果以相同的部分编号上传了多个对象部分,那么将优先使用最后上传的部分来组合对象。

如果对象一直没有提交,那么各个对象部分将会怎样?

对于已经发起但一直没有完成的上传,Oracle Object Storage 会将各个部分保留在存储库中,直到用户明确中止分段上传。Oracle Object Storage 将按对象部分占用的存储空间收费,而不管对象是否已提交。您可以列出所有活动上传,并决定中止其中一些。删除活动上传会删除所有已上传部分并释放存储空间。您还可以配置对象生命周期管理规则来自动删除未提交或失败的分段上传。

是否可以中止分段上传并删除已上传部分?

是的,您可以通过中止进程来终止正在进行的分段上传。中止分段上传会删除与特定上传 ID 关联的所有对象部分。

是否可以在提交对象后再向对象追加某个部分?

否,您不能在提交对象后再追加某个部分。

是否可以在分段上传各个部分时跳过某些部分编号?

是的,您可以在分段上传各个部分时跳过某些部分编号。部分编号不必为连续编号。

是否可以在提交对象之前手动删除某个部分并将其从上传中排除?

否,您不能特意删除与某个活动分段上传相关联的已上传部分。但是,您可以在提交对象时选择排除某些已上传部分。这些排除的部分将被自动删除。

如何验证分段上传的对象的完整性?

Oracle Object Storage 会像对待普通对象上传一样处理对象各部分的上传。您可以通过发送对象部分的 MD5 哈希值或记录作为请求响应返回的 MD5 哈希值,来验证对象是否意外发生了损坏。提交上传对象后,您还将收到对象的各个组成部分的 MD5 哈希值的 MD5 哈希值。该 MD5 哈希值可以用于验证整个对象的完整性。

哪些 Oracle Cloud Infrastructure Object Storage 客户端支持分段上传?

Oracle Object Storage 原生 API、Oracle Cloud Infrastructure (OCI) 软件开发工具包 (SDK)、OCI Command Line Interface (CLI) 和 OCI Console 均支持分段上传功能。

公共存储桶

什么是公共存储桶?

公共存储桶是一种存储桶类型,您可以使用它来自由地共享对象存储中保存的数据。任何知道公共存储桶名称和相关命名空间的人都可以匿名读取数据、列出对象或者获取对象元数据,但不可以通过匿名 PUT 操作将数据发布到公共存储桶。存储桶默认为专用空间,必须通过显式设置其属性才能变成公共存储桶。

公共存储桶支持匿名数据访问,因此在创建公共存储桶时请小心谨慎。建议您秉持谨慎之心,仅在绝对必要时才使用公共存储桶。尽管公共存储桶是一种强大的大规模数据共享方式,但其安全性有所欠缺。任何人都可以匿名访问公共存储桶中保存的数据,因此您无法查看何人访问了您保存的数据,也不能加以控制。很多时候,Oracle Cloud Infrastructure Identity and Access Management 规则或预验证请求是公共存储桶的一个很好的替代方案。

如何创建公共存储桶?

您可以使用 API、SDK、CLI 和 Oracle Cloud Infrastructure 控制台创建公共存储桶。公共存储桶的创建方法与普通存储桶一样,只是您需要将其属性“publicAccessType”设置为“ ObjectRead”。此参数默认设置为“NoPublicAccess”。您可以在创建存储桶时设置此属性的值,也可以在创建之后通过更新存储桶进行修改。

创建公共存储桶需要拥有哪些 Oracle Identity and Access Management (IAM) 权限?

您需要拥有 IAM 权限 BUCKET_CREATE 和 BUCKET_UPDATE 才能创建公共存储桶。

是否可以将存储桶在公共和专用之间进行切换?

是的,您可以通过更新属性“publicAccessType”,将存储桶在公共和专用之间进行切换。

专用存储桶

什么是专用存储桶?

Object Storage 桶在创建时会被默认设置为专用存储桶。如需与其他用户组共享存储在专用存储桶中的数据,您需要为该组定义相关的 IAM 权限

是否可以限制仅允许从特定 Virtual Cloud Network 或子网访问 Object Storage 存储桶?

是的,您可以为存储桶定义 IAM 策略,只允许从特定 VCN 或该 VCN 的 CIDR 块发起的请求得到授权。不过,为此您需要使用 Oracle Cloud Infrastructure Service Gateway 来访问 Object Storage,并实施这种 IAM 策略。当尝试通过互联网网关从具有公共 IP 地址的实例,或从本地网络中运行的实例访问 Oracle Object Storage 时,访问将被阻止。

请查阅 IAM 策略文档范例,了解如何仅允许特定 VCN 中的资源将对象写入特定的 Object Storage 桶。有关更多信息,请查阅 Service Gateway 产品文档

预验证请求

什么是预验证请求 (PAR)?

预验证请求 (PAR) 机制让您能够与第三方共享对象存储中保存的数据。PAR 让用户不必使用 API、SDK 或 CLI 等编程接口就能访问对象存储数据。您可以在存储桶和对象上定义 PAR。通过对 PAR 使用 cURL 或 wget 等工具,用户可以轻松访问对象存储中保存的数据。您还可以使用 PAR 接收任何人发来的数据。通过 PAR 接收的数据将发布到创建 PAR 时指定的对象存储桶中。

创建 PAR 时将生成唯一的 PAR URL。能够访问此 URL 的任何人都可以访问预验证请求中标识的资源。PAR 具有到期日期,该日期决定了 PAR 保持活动状态的时长。PAR 过期后即无法继续使用。创建和管理 PAR 需要 PAR_MANAGE 权限。此外,在对某个对象存储资源创建 PAR 时,还需要拥有该对象存储资源的读取和/或写入权限。创建完毕后,您可以列出每个对象存储桶的 PAR,并且如果需要,可以赶在 PAR 到期日期之前将其删除。

什么情况下应使用预验证请求?

当您需要与第三方共享数据或从第三方接收数据时,就可以使用 PAR。当第三方不能或不愿意使用 API、SDK 或 CLI 等通常的对象存储接口来访问数据时,PAR 就很实用,它让用户可以使用 cURL 等现成的 HTTP 工具来访问数据。

创建和共享 PAR 时请务必小心。创建完毕后,能够访问 PAR URL 的任何人都可以访问指定的对象存储资源。我们无法一目了然地判断使用 PAR 的用户是否拥有合法授权。

如何创建预验证请求?

您可以使用 Oracle Cloud Infrastructure 服务控制台或通过 Oracle Cloud Infrastructure SDK 和/或 CLI 创建 PAR。创建 PAR 时,需要指定对象存储资源(对象或存储桶)、最终用户可以执行的操作以及 PAR 的有效时间。

我可以在哪些对象存储资源上定义预验证请求?

您可以在存储桶和对象上定义 PAR。在存储桶上定义的 PAR 只能用于接收数据,而在对象上定义的 PAR 可以用于发送和接收数据。

需要拥有什么 Oracle Identity and Access Management 权限才能创建和管理预验证请求?

您需要拥有 PAR_MANAGE 权限才能创建和管理 PAR。此外,您只能在您有权访问的资源上创建 PAR。举例而言,如果您希望在某个存储桶上创建 PUT PAR,则需要拥有在该特定存储桶中写入数据的权限。如果要在某个对象上创建 GET PAR,那么您需要拥有想要共享的该特定对象的读取权限。创建和共享 PAR 之后,如果您的对象存储权限发生变化,那么 PAR 将立即失效,无论它有没有到达到期日期。

每个存储桶或对象上可以创建多少个预验证请求?

每个存储桶或对象上可以创建的 PAR 数量没有限制。

生成 PAR URL 后,是否还可以管理 PAR?

是的,创建 PAR 后,您可以轻松对其进行管理。您可以列出在存储桶和对象上创建的 PAR。您还可以删除 PAR,无论它们是处于活动状态还是已过期。删除 PAR 后,相应的 PAR URL 将立即失效。创建 PAR 后,如果创建者的权限发生变化,相应的 PAR URL 也会立即失效,从而不能再用于访问指定的目标资源。

是否可以更新预验证请求?

否,不支持对 PAR 的更新操作。您无法延长 PAR 的到期日期,也无法修改为 PAR 指定的操作。如果要对 PAR 进行任何更改,您需要新建一个 PAR。

如果创建 PAR 的用户的密码发生变更,先前创建的预验证请求将会怎样?

不需要。预验证请求的一个好处是,它们与 Oracle Cloud Infrastructure 用户账户凭据相分离。更改密码不会影响 PAR 的有效性。

预验证请求的安全性如何?

总体而言,预验证请求是一种安全的数据共享方法。只有拥有相应创建权限的用户才能创建预验证请求。此外,创建请求的用户必须有权执行请求将准允的操作。

举例来说,创建对象上传预验证请求的用户必须在目标隔间同时拥有 OBJECT_CREATE 和 PAR_CREATE 权限。如果用户在创建请求后丧失了 OBJECT_CREATE 权限,那么该请求将立即失效。

共享 PAR URL 时请务必小心。确保只有预期的目标用户可以访问它。能够访问 PAR URL 的任何人都将自动获得 PAR 中指定的对象存储资源的访问权限。我们无法一目了然地判断使用 PAR 的用户是否拥有合法授权。

是否可以在公共存储桶上创建 PAR?

是的,您可以在公共存储桶上创建 PAR。

如果我在原先专用的存储桶上创建了一个 PAR,该存储桶后来被更改为公共存储桶,那么该 PAR 是否会继续有效?

是的,存储桶在公共和专用之间切换时,PAR 会继续有效。

是否可以在 PAR 到期之前将其停用?

可以。您可以在到期日期之前删除 PAR 以将其停用。删除后,PAR URL 将立即失效。

如何创建永不过期的 PAR?

如需创建理论上永不过期的 PAR,请将 PAR 到期日期设置为某个遥远的未来日期。

如何跟踪 PAR 操作?

所有 PAR 创建和管理操作均会记录在审计服务中。您可以查看审计日志来了解执行的所有 PAR 管理操作。通过为对象存储启用可选服务日志,可以记录 PAR 访问操作。

对象生命周期管理

什么是对象生命周期管理?

对象生命周期管理通过自动化归档和删除来帮助您高效管理 Object Storage 数据的生命周期,从而降低存储成本并节省时间。借助生命周期管理,可以为存储桶创建一个规则集(生命周期策略),以指示系统根据对象的存储时长来归档或删除对象。您可以使用对象名称前缀匹配条件来缩小个别生命周期策略规则的适用范围,以便针对存储桶中不同对象的需求创建定制的生命周期策略。举例而言,您可以针对包含名称前缀“ABC”的对象创建一个生命周期策略,指定在创建数据 30 天后将这些对象从标准 Object Storage 自动迁移到 Archive Storage,并在创建数据 120 天后将其删除。如果日后您决定延长归档数据的保留期限,则可以编辑相应的生命周期策略规则来控制相应归档对象的保留期限,而让其他生命周期策略规则保持不变。

如何针对存储桶创建生命周期策略?

您可以使用 Oracle Cloud Infrastructure 服务控制台、CLI、SDK 或 API 来针对存储桶定义生命周期策略。每个存储桶可以定义一个生命周期策略,每个生命周期策略最多可以包含 1000 条规则。每条规则对应一种可针对存储桶中的对象执行的操作(归档或删除)。您可以针对存储桶中的所有对象来创建规则,也可以仅针对具有特定名称前缀模式的对象子集来创建规则。

是否可以针对 Archive Storage 桶定义生命周期策略?

是。您可以针对 Archive Storage 桶创建生命周期策略,但只能使用“删除”规则。您无法使用生命周期策略将已归档对象从 Archive Storage 迁移到标准 Object Storage。创建生命周期策略规则时,请注意 Archive Storage 的最低保留要求为 90 天。如果生命周期策略会删除未达到保留要求的归档数据,那么您可能遭受删除损失。删除违约金是一笔基于存储数据 90 天的总成本按比例折算的费用。

是否可以禁用生命周期策略中定义的规则?

是的,您可以禁用或重新启用生命周期策略中定义的规则。

是否可以在创建生命周期策略后添加规则?

是的,您可以向现有生命周期策略添加规则。使用 CLI、SDK 或 API 添加、删除或更改个别生命周期策略规则后,您必须在更新中提供整个生命周期策略的编辑版本(包括未更改的规则)。请参阅文档了解更多详情。

是否可以在创建生命周期策略后添加规则?

是的,生命周期策略会应用至创建策略之前上传到 Object Storage 桶中的数据。举例而言,如果您实施一个生命周期策略规则,指定将所有上传于 30 天前的对象归档,而存储桶中包含 40 天前上传的对象,那么该服务会立即将这些对象识别为要归档的对象并启动归档进程。

执行存在冲突的生命周期规则时的评估原则是什么?

系统会在运行时评估规则是否存在冲突。对于存在冲突的规则,删除对象的规则始终优先于归档相同对象的规则。

跨区域复制

什么是跨区域复制?

跨区域复制允许您将对象异步复制到同一区域中的其他存储桶、其他区域中的存储桶,或者同一区域或其他区域中其他租户的存储桶。复制对象时,您可以保留原始名称,也可以更改名称。复制到目标存储桶的对象将成为新对象,并获得唯一 ETag 值和 MD5 哈希值。

跨区域复制是怎么进行的?

您可以使用 Oracle Cloud Infrastructure 服务控制台、CLI、SDK 或 Object Storage API 来在区域之间复制对象。复制对象时,您必须指定源对象名称、目标命名空间、目标区域以及目标存储桶。复制将异步进行,这意味着 Object Storage 会通过队列来管理复制请求,并在有可用资源时处理这些请求。系统会在您提交复制请求时生成一个工作请求 ID。您可以通过查询工作请求来了解对象的复制进度。您还可以使用 API、CLI 或 SDK 取消工作请求。取消工作请求将中止复制操作。

是否可以将对象复制到任何 Oracle Cloud Infrastructure 区域中的存储桶?

是的,可以在任何两个可用的 Oracle Cloud Infrastructure 区域之间复制对象。但是,发起复制的用户必须同时拥有在源区域和目标区域中读取和写入数据的 IAM 权限。

复制操作是否会保留源对象上定义的自定义元数据?

是的,系统在复制对象时会默认保留源对象的元数据。不过,如果使用 API、CLI 或 SDK 复制对象,您可以对复制操作选择修改或删除对象元数据。

是否可以在标准对象存储桶和归档存储桶之间复制对象?

是的,您可以在标准对象存储桶和归档存储桶之间复制对象。不过在复制归档存储桶中的对象时,您必须先将其还原。

是否可以在同一区域的存储桶之间复制对象?

是的,您可以在同一区域的存储桶之间复制对象。

复制对象时,源对象和目标对象的 MD5 哈希值是否相同?

目标对象的 MD5 哈希值与源对象可能不同。这是因为 Object Storage 服务为目标对象使用的块大小可能不同于最初用于上传源对象的块大小。

是否可以使用跨区域复制功能一次性复制多个对象?

否,使用跨区域复制功能时,每次只能复制一个对象。不过,您可以使用 CLI 通过脚本实现从源存储桶到目标存储桶的批量复制。

Amazon S3 Compatibility API

什么是 Amazon S3 Compatibility API?

Amazon S3 Compatibility API 是一组 Object Storage API,用于构建可与 Amazon S3 等其他存储服务互操作的产品和服务。

Amazon S3 Compatibility API 有哪些优势?

Amazon S3 API 的优势包括:

  • 避免锁定到单一供应商存储服务
  • 可以继续使用您常用的客户端、应用或服务,让它们通过 Amazon S3 API 来与 Oracle Object Storage 交互

是否支持所有可用的 Amazon S3 API?

否,支持部分可用的 Amazon S3 API。请参阅 Amazon S3 Compatibility API 文档,了解当前受支持的 Amazon API 的完整列表。

未来 Oracle Object Storage 是会继续支持多种 API,还是会在单个 API 上进行标准化?

Oracle Object Storage 将继续支持原生 Object Storage API 和 Amazon S3 Compatibility API。Amazon S3 Compatibility API 旨在促进与其他云存储平台的互操作性。如果希望使用所有可用的 Oracle Object Storage 功能,建议您使用原生 Object Storage API。

什么情况下应使用 Amazon S3 Compatibility API?

如果您希望使用特定的客户端或应用来访问 Object Storage 服务,同时又想利用 Amazon S3 之类的 API,则应考虑使用 Amazon S3 Compatibility API。如果您需要让您的产品或服务与多种 Amazon S3 之类的对象存储目标实现互操作,也应该考虑使用 Amazon S3 Compatibility API。

原生 Object Storage API 和 Amazon S3 Compatibility API 的功能是否相同?

否,我们不保证两组 API 之间的功能完全相同。所有新的 Object Storage 功能都将首先得到原生 API 的支持,在时机成熟后才会得到 Amazon S3 Compatibility API 的支持。

是否可以使用 Amazon S3 Compatibility API 写入数据,再使用 Object Storage 原生 API 读取数据,或者反之?

是的,这两组 API 在读写操作上存在一致性。使用 Amazon S3 Compatibility API 将数据写入 Oracle Object Storage 后,可以使用原生 Object Storage API 读取数据,反之亦然。

隔间是 Oracle Cloud Infrastructure 独有的概念,Amazon S3 Compatibility API 如何采纳了这一概念?

所有使用 Amazon S3 Compatibility API 创建的存储桶都是在 Oracle Cloud Infrastructure 的“根”隔间中创建的。然而如果您不希望将存储桶创建在根隔间中,可以使用控制台或命令行接口 (CLI) 将其创建在您选择的隔间中。随后,您就可以使用 Amazon S3 Compatibility API 来操作该存储桶。

身份验证如何与 Amazon S3 Compatibility API 配合使用?

要使用这些 API,您需要通过 Oracle Cloud Infrastructure 控制台创建 Amazon S3 Compatibility Access Key/ Secret Key 对。此访问密钥/私有密钥组合随后可以与您选择的客户端配合使用。请注意,Oracle Cloud Infrastructure 仅支持 Signature Version 4 签名机制。每个 Oracle Identity and Access Management 用户可以同时拥有两个激活的 API 密钥/密码对。

Amazon S3 Compatibility API 是否同时支持虚拟托管样式和路径样式 URL?

否,Amazon S3 Compatibility API 仅支持路径样式 URL。

是否可以配合 Amazon S3 Compatibility API 重复使用通过原生 API 或 Oracle Cloud Infrastructure 控制台创建的存储桶?

是的,您可以配合 Amazon S3 Compatibility API 重复使用通过原生 Object Storage API 或控制台创建的存储桶。

Oracle Object Storage 服务如何处理 Amazon S3 Compatibility API 不支持的 REST 标头?

若 Amazon S3 API 调用引用了不受支持的 REST 标头或标头值,则该服务在处理请求时会将其忽略。

举例而言,如果在调用 PUT Object Storage API 时指定了标头 x-amz-server-side-encryption,那么该标头将被忽略,因为 Oracle Object Storage 默认会加密所有对象。

Amazon S3 Compatibility API 如何支持加密?

默认会加密 Oracle Object Storage 中的所有数据。处理 API 调用时将忽略加密标头。

Amazon S3 Compatibility API 正式支持哪些客户端?

我们使用 AWS SDK for Java 测试过 Amazon S3 Compatibility API。然而,只要引用了受支持的 API,则其他与 Amazon S3 式 API 相集成的客户端都应当能够与 Oracle Object Storage 协同作业。请参阅 Amazon S3 Compatibility API 文档,了解当前受支持的 Amazon API 的完整列表。

是否可以使用 Amazon S3 Compatibility API 来分配对象元数据?

可以。可以在上传对象时分配对象元数据。

Amazon S3 Compatibility API 是否会验证对象元数据值?

不会。但是如果元数据值包含尾随空白,则会删除尾随空白。

复制

什么是复制?

复制是 Object Storage 的一项特性,可将 Object Storage 桶中的对象异步复制到租户中的另一个存储桶。目标存储桶可以位于远程 OCI 区域,也可以位于与源存储桶相同的区域。目标存储桶中的复制对象是与源存储桶中的对象完全相同的副本,具有相同的名称、元数据、eTag、MD5 和版本 ID。

复制是否以接近实时的方式执行?

可以。Object Storage 将持续监视复制源存储桶中的更改。发现更改后会立即开始复制到目标存储桶。

复制是否使用加密?

可以。Object Storage 将始终对存储和传输状态的对象进行加密。复制读取加密的源对象并通过加密网络进行传输。

复制是否需要 IAM 策略?

可以。除非已创建所需的 IAM 策略,否则复制将无法正常运行。要了解更多信息,请参阅复制文档

是否可以限制复制的目标区域?

可以。复制可以将对象全局复制到任何“不受限制的”OCI 区域,还可以将复制限制为特定源和目标区域。

文档所述,应当为复制源区域中的 Object Storage 服务赋予针对所使用源存储桶和目标存储桶的显式访问权限。利用 OCI Identity and Access Management (IAM) 的现有功能,用户可以将为 Object Storage 服务授予的权限限制为特定源和目标区域,以及可选的特定源和目标存储桶。要将 Object Storage Replication 限制为特定的源区域和目标区域,请配置以下示例所示的策略,该策略可允许 us-phoenix-1 中的任何源存储桶和 us-ashburn-1 中的任何目标存储桶。在 IAM 策略中引用区域时,应当使用三个字母的区域密钥

allow service objectstorage-us-phoenix-1 to manage object-family in tenancy where any {request.region='phx', request.region='iad'}

要将 Object Storage Replication 限制为 us-phoenix-1 中名为 "source_bucket" 的源存储桶以及 us-ashburn-1 中名为 "destination_bucket" 的存储桶,请创建如下所示的 IAM 策略:

allow service objectstorage-us-phoenix-1 to manage object-family in tenancy where any {all {request.region='phx', target.bucket.name='source_bucket'}, all {request.region='iad', target.bucket.name='destination_bucket'}}


注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。