我有一个应用程序,允许用户使用 CSS 和其他项目自定义网站。创建这些文件后,它们将存储在 Amazon S3 上,可供公众阅读。因此,我一直能够使用不需要我先连接到 S3 来生成 URL 的静态 url 来引用它们。
我们已将所有文件移至位于我们托管公司数据中心内的 EMC Atmos 系统。我知道如何从 Atmos 生成可共享的 URL,但只能通过首先建立连接。Atmos 有没有办法在对象上设置系统元数据,以便可以使用静态 URL 引用它?
我有一个应用程序,允许用户使用 CSS 和其他项目自定义网站。创建这些文件后,它们将存储在 Amazon S3 上,可供公众阅读。因此,我一直能够使用不需要我先连接到 S3 来生成 URL 的静态 url 来引用它们。
我们已将所有文件移至位于我们托管公司数据中心内的 EMC Atmos 系统。我知道如何从 Atmos 生成可共享的 URL,但只能通过首先建立连接。Atmos 有没有办法在对象上设置系统元数据,以便可以使用静态 URL 引用它?
您无需连接到 Atmos 即可生成可共享的 URL。可共享 URL 的生成总是发生在客户端;它不会通过 HTTP 发生。
Atmos 系统元数据始终是不可变的。您可以使用可共享的 URL 生成“静态 URL”,并将过期设置为遥远的将来。
EMC Atmos不需要HTTP/HTTPS 连接来生成可共享的 URL。它确实 建立了一个 HTTP 连接来生成文件,但它可以由存储在云上的文件的最终用户来完成。
要创建 URL,需要在应用程序客户端进行签名(不需要 HTTP 连接)。原因是因为生成了唯一的签名。
要发送签名,您可以将签名放在 URL 中:
$url = "http://$server$resource?uid=$uid&expires=$expires&signature=$signature";
或者不是将签名放在 URL 中,而是通过 REST API 通过发布x-emc-signature的 HTTP 标头来发送它。
因此,一旦您生成了该 URL,您可以通过电子邮件或文本将其发送给其他人,他们可以稍后单击它们,只要该 URL 未过期,它将是有效的。
EMC Atmos 验证签名后,会将下载内容发送到客户端。请注意,系统时钟关闭超过 5 分钟的服务器将无法生成可共享 URL,因此请使用 NTP 守护程序在生成可共享 URL 的应用程序上保持时间同步。
因此,澄清一下,EMC Atmos 不需要与您的云存储提供商建立 HTTP 连接。HTTP 连接在第一次请求文件时完成。届时,该文件将公开可用。