【问题标题】:Storing object with Control-Cache header in object storage is unachievable无法在对象存储中存储带有 Control-Cache 标头的对象
【发布时间】:2018-03-23 17:55:57
【问题描述】:

我确实上传了一个带有 Cache-Control 作为参数的对象,它在对象存储桶中不起作用,但它在 AWS S3 桶中使用相同的代码

$s3Client->putObject([
            'ACL' => 'public-read',
            'Bucket' => config('filesystems.disks.object-storage.bucket_name'),
            'CacheControl' => 'public, max-age=86400',
            'Key' => $path,
            'SourceFile' => $path,
        ]);

我真的不明白为什么相同的代码在两个云存储桶中没有相同的效果,因为两者都使用 S3 API。

上传的文件有控制缓存头in AWS S3,同样的文件in IBM OO 没有得到同样的结果。

如何在对象存储文件中正确设置控制缓存头?

【问题讨论】:

标签: caching ibm-cloud ibm-cloud-infrastructure object-storage


【解决方案1】:

现在可以完成 - 至少可以通过IBM Cloud Object Storage CLI

ibmcloud cos put-object --bucket bucket-name-here --cache-control "public, max-age=31536000" --body dir/file.jpg --key prefix/file.jpg

假设您有权执行此操作,它将导致带有适当的 Cache-Control 标头。有可选参数,例如Content-Type 也是如此,尽管它似乎检测到正确的 JPG 类型。要替换现有文件上的元数据,您可能必须从存储桶复制到同一存储桶,as is done here

在此之前,我使用 HMAC 创建了一个服务帐户,并使用 ibmcloud cos config hmac 输入了凭据。您可能还需要先ibmcloud cos config region 设置您的默认区域。

至于 API 本身,setCacheControl() [和 setHttpExpiresDate()] 似乎是您所需要的。对于 REST API,您可能需要 Cache-Control 作为 PUT 的一部分 - 自 June 2018 以来一直是 listed as a "common header"。我不确定确定这就是您通过 REST 实现此目标的方式,但似乎很可能 - this is how you set Content-Type

在 Web 控制台中,我无法看到与 Oracle 在选择要上传的文件时设置 Cache-Control 标头的方式等效的方式,因为它在使用 Aspera Connect 拖放后立即开始上传。 (这是不幸的,因为它是一种相对用户友好的方式来上传中等数量的带路径的文件。)

【讨论】:

    【解决方案2】:

    IBM 对象存储目前没有 AWS S3 那样的所有选项,有效的 API 操作在这里列出https://ibm-public-cos.github.io/crs-docs/api-reference

    如您所见,不支持控制缓存

    【讨论】:

    • 谢谢,感谢您的参考,我的最后一个疑问是是否存在某种机制来为对象存储中的文件设置过期标头,从而获得更好的性能,您知道该怎么做吗?
    • 这只能用于快速对象存储,您需要设置标题“X-Delete-At”和您想要的时间。见community.runabove.com/kb/en/object-storage/…
    • X-Delete-At 从对象存储中删除文件。他们所说的“Expires”和“Cache-Control”的意思是设置 HTTP 标头,可能通过 setHttpExpiresDate() 和 setCacheControl() 以便客户端可以缓存响应直到给定时间或给定时间段,所以他们不保留击中您的存储桶,用完请求并转移。 CLI 似乎可能支持此功能(请参阅:--cache-control),但与 Oracle Cloud 不同,它不会在基于 Web 的控制台上公开;也不在 Aspera Connect 中:cloud.ibm.com/docs/…
    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2011-11-05
    • 2012-02-15
    相关资源
    最近更新 更多