- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我们有一些公开共享的 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/
我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
我似乎经常使用这个测试 if( object && object !== "null" && object !== "undefined" ){ doSomething(); } 在对象上,我
C# Object/object 是值类型还是引用类型? 我检查过它们可以保留引用,但是这个引用不能用于更改对象。 using System; class MyClass { public s
我在通过 AJAX 发送 json 时遇到问题。 var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
当我尝试访问我的 View 中的对象 {{result}} 时(我从 Express js 服务器发送该对象),它只显示 [object][object]有谁知道如何获取 JSON 格式的值吗? 这是
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子: public static void main(String[] args) { before("one"); }
嗨,我是 json 和 javascript 的新手。 我在这个网站找到了使用json数据作为表格的方法。 我很好奇为什么当我尝试使用 json 数据作为表时,我得到 [Object,Object]
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我听别人说 null == object 比 object == null check 例如: void m1(Object obj ) { if(null == obj) // Is thi
Match 对象 提供了对正则表达式匹配的只读属性的访问。 说明 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的
Class 对象 使用 Class 语句创建的对象。提供了对类的各种事件的访问。 说明 不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中,“类对象”一词指的是用
Folder 对象 提供对文件夹所有属性的访问。 说明 以下代码举例说明如何获得 Folder 对象并查看它的属性: Function ShowDateCreated(f
File 对象 提供对文件的所有属性的访问。 说明 以下代码举例说明如何获得一个 File 对象并查看它的属性: Function ShowDateCreated(fil
Drive 对象 提供对磁盘驱动器或网络共享的属性的访问。 说明 以下代码举例说明如何使用 Drive 对象访问驱动器的属性: Function ShowFreeSpac
FileSystemObject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象,此对象可以被读
我是 javascript OOP 的新手,我认为这是一个相对基本的问题,但我无法通过搜索网络找到任何帮助。我是否遗漏了什么,或者我只是以错误的方式解决了这个问题? 这是我的示例代码: functio
我可以很容易地创造出很多不同的对象。例如像这样: var myObject = { myFunction: function () { return ""; } };
function Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = function()
任何人都可以向我解释为什么下面的代码给出 (object, Object) 吗? (console.log(dope) 给出了它应该的内容,但在 JSON.stringify 和 JSON.parse
我正在尝试完成散点图 exercise来自免费代码营。然而,我现在只自己学习了 d3 几个小时,在遵循 lynda.com 的教程后,我一直在尝试确定如何在工具提示中显示特定数据。 This code
我是一名优秀的程序员,十分优秀!