Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Logstash s3输入插件-前缀和备份添加前缀_Amazon S3_Input_Plugins_Logstash - Fatal编程技术网

Amazon s3 Logstash s3输入插件-前缀和备份添加前缀

Amazon s3 Logstash s3输入插件-前缀和备份添加前缀,amazon-s3,input,plugins,logstash,Amazon S3,Input,Plugins,Logstash,我很难理解LogstashS3输入插件的前缀是如何工作的 文档建议前缀用于文件名: 如果指定,则bucket中的文件名前缀必须匹配(不是regexp) 参考: 然而,在进行此实验时,我发现前缀与任何具有相同前缀的文件都不匹配 我认为这是可行的 input { s3 { id => "my-s3-input" bucket => "my-s3-bucket" prefix => "12345&q

我很难理解LogstashS3输入插件的前缀是如何工作的

文档建议前缀用于文件名: 如果指定,则bucket中的文件名前缀必须匹配(不是regexp) 参考:

然而,在进行此实验时,我发现前缀与任何具有相同前缀的文件都不匹配

我认为这是可行的

input {
  s3 {
    id => "my-s3-input"
    bucket => "my-s3-bucket"    
    prefix => "12345"
    region => "eu-west-1"
  }
}
并在S3存储桶中返回如下所示的文件:

12345_file_a.log
12345_file_b.log
12345_file_c.log
但这个假设是错误的,没有返回任何文件

相反,当我将前缀设置为文件路径的第一部分时,它会沿着该路径返回文件

i、 e

返回S3 bucket中位于所有子文件夹A/B/C/Logs下的所有文件

i、 e

其中包括:

s3://my-s3-bucket/A/B/C/Logs/2020/1/foo.log
s3://my-s3-bucket/A/B/C/Logs/2020/2/foo.log
s3://my-s3-bucket/A/B/C/Logs/2020/3/foo.log
我的意图是使用backup_add_前缀-作为一种表示文件已由logstash处理的方式

我已阅读备份\添加\前缀用于前缀: “在处理后,将前缀附加到密钥(完整路径,包括s3中的文件名)”

参考:

有人能在S3输入插件的上下文中解释什么是前缀吗? 是包含文件名的路径,而不仅仅是文件名吗

所描述的用于备份\u添加\u前缀是否更合适 “密钥的前缀(完整路径,包括s3中的文件名)” 前缀

在使用backup_add_前缀之前和之后,S3中的结构是什么

i、 e.如果设置为备份\添加\前缀=>“测试”并更新相同的存储桶,它会这样做吗:

结构之前:

s3://my-s3-bucket/A/B/C/Logs/2020/1/foo.log
s3://my-s3-bucket/A/B/C/Logs/2020/2/foo.log
s3://my-s3-bucket/A/B/C/Logs/2020/3/foo.log
结构后:

s3://my-s3-bucket/TEST/A/B/C/Logs/2020/1/foo.log
s3://my-s3-bucket/TEST/A/B/C/Logs/2020/2/foo.log
s3://my-s3-bucket/TEST/A/B/C/Logs/2020/3/foo.log
是否将我的前缀设置为A/B/C/Logs以仅获取未处理的文件

谢谢

s3://my-s3-bucket/A/B/C/Logs/2020/1/foo.log
s3://my-s3-bucket/A/B/C/Logs/2020/2/foo.log
s3://my-s3-bucket/A/B/C/Logs/2020/3/foo.log
s3://my-s3-bucket/TEST/A/B/C/Logs/2020/1/foo.log
s3://my-s3-bucket/TEST/A/B/C/Logs/2020/2/foo.log
s3://my-s3-bucket/TEST/A/B/C/Logs/2020/3/foo.log