gpt4 book ai didi

ruby - 在 Amazon S3 对象上设置 noindex

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:51 24 4
gpt4 key购买 nike

我们有一些公开共享的 S3 文件,我们希望确保这些文件不会被 Google 编入索引。我似乎找不到有关如何执行此操作的任何文档。有没有办法在单个 S3 对象上设置“noindex”x-robots-tag 响应 header ?

(我们正在使用 Ruby AWS 客户端)

最佳答案

not 似乎是一种方法可以做到这一点。

只有来自 S3 PUT 对象请求的某些 header 被记录为在获取对象时返回。

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html

您发送的任何其他内容似乎都会被忽略,只要它实际上不会使请求无效即可。

实际上,在研究这个之前我就是这么想的,几乎是真的。

documentation here似乎不完整,并且elsewhere建议以下请求 header ,如果与上传一起发送,将出现在下载中:

Cache-Control
Content-Disposition
Content-Encoding
Content-Type
x-amz-meta-*

其他 header 在后一个链接中列出,但其中一些 header (如 Expect)在 GET 请求中没有意义,因此它们在逻辑上不会出现。

到目前为止,这与我使用 S3 的经验完全一致。

如果您随请求发送一个随机但并非无效的 header ,它会被忽略。示例:

X-Foo: bar

S3 似乎在上传时接受了这个,但丢弃了它(大概不存储它)...下载对象不会返回 X-Foo header 。

但是 X-Robots-Tag 似乎是一个未记录的异常。

上传带有 X-Robots-Tag: noindex 的文件(例如)确实会导致在 GET 时对象返回相同的 header 和值.

除非有人可以引用解释其工作原理的文档,否则我们在明显没有记录的领域开展业务。

但是,如果您有兴趣去那里,简单的答案似乎是,您只需将此 header 添加到您发送到 REST API 以上传对象的 HTTP PUT 请求中。

“没那么快,”你说,“我正在使用 Ruby SDK。”的确。 AWS Ruby 客户端似乎太“有帮助”,无法让您逃脱,至少,不容易。 docs there展示如何添加“元数据”——

:metadata (Hash) — A hash of metadata to be included with the object. These will be sent to S3 as headers prefixed with x-amz-meta. Each name, value pair must conform to US-ASCII.

好吧,那是行不通的,因为你会得到 x-amz-meta-x-robots-tag。

如何在上传中设置其他标题?您通常设置的每个其他 header 都是选项哈希的一个元素,例如 :cache_control,它在上传请求中变成 Cache-Control:。除非他们盲目地将来自该散列的 key 应用到上传交易(这将是糟糕的设计加上极好的运气),否则您可能没有直接的方法从那里到达这里。我不能说得更具体,因为我对 Ruby 的真正了解与我对 Java 的了解是一样的——就我所见,我不喜欢它。 :)

X-Robots-Tag 似乎确实是 S3 支持的自定义 header ,在某种程度上,没有关于该事实的明确文档。它至少被 REST API 所接受。

如果上述情况失败,您可以在上传对象后手动将此 header 添加到 S3 控制台中的元数据。 (请注意,X-Foo: Bar 也不能在 S3 控制台上运行——它会被默默地丢弃,没有错误——但是 X-Robots-Tag:工作正常)。


当然,您也可以将一个公开可读的 robots.txt 文件(其中包含适当的指令)放在存储桶的根目录中。根据您的目标组合、路径层次结构和其他因素,这并不(可能)像有选择地设置标题一样简单,但如果整个存储桶由您不想索引的信息组成,它应该可以轻松完成您想要的,因为如果在 robots.txt 中不允许,内容不应被编入索引,即使搜索蜘蛛从另一个站点跟踪指向它的链接——每个域(和子域)的 robots.txt 文件都是独立的。

关于ruby - 在 Amazon S3 对象上设置 noindex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com