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 web services 控制台和CLI之间的不同S3下载行为_Amazon Web Services_Amazon S3_Aws Cli - Fatal编程技术网

Amazon web services 控制台和CLI之间的不同S3下载行为

Amazon web services 控制台和CLI之间的不同S3下载行为,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我已经设置了一个cloudwatch日志组,通过kinesis&firehose将日志流式传输到一个s3存储桶中,作为gzip ed文件 gzip文件都带有一些元数据标记: Content-Encoding gzip Content-Type application/octet-stream 当我直接从浏览器控制台下载一个文件并解压缩它时,我得到了日志文件的预期内容,即json字符串。但是,如果我使用aws CLI在本地cp文件并解压缩内容,那么文件将在终端以二进制形式

我已经设置了一个cloudwatch日志组,通过kinesis&firehose将日志流式传输到一个s3存储桶中,作为gzip ed文件

gzip文件都带有一些元数据标记:

Content-Encoding     gzip
Content-Type         application/octet-stream
当我直接从浏览器控制台下载一个文件并解压缩它时,我得到了日志文件的预期内容,即json字符串。但是,如果我使用aws CLI在本地
cp
文件并解压缩内容,那么文件将在终端以二进制形式呈现

AWS控制台下载按钮和AWS CLI
s3 cp
命令之间行为差异的原因是什么?

我已经尝试指定命令行标志的各种组合

aws s3 cp --content-encoding gzip --content-type "application/json"
aws s3 cp --content-encoding gzip --content-type "application/octet-stream"
aws s3 cp --content-encoding gzip --content-type "application/octet-stream" --sse-kms-key-id <keyArn>
aws s3 cp——内容编码gzip——内容类型“application/json” aws s3 cp--内容编码gzip--内容类型“应用程序/八位字节流” aws s3 cp——内容编码gzip——内容类型“应用程序/八位字节流”——sse kms密钥id 但它们都没有产生我在浏览器中使用控制台所获得的积极效果

更新


该文件的s3 cli版本几乎比管理控制台版本大10KB。

设置消防软管以压缩消息内容。然而,cloudwatch已经在压缩消息

当浏览器从S3下载文件时,它会自动解压缩两层压缩中的第一层。因此,第二次解压缩产生了预期的日志


CLI不执行此自动解压缩。因此,解压缩文件仍然会生成一个压缩的二进制文件。第二次解压解决了问题。

我尝试用
cp
下载该文件,一切都很顺利-
aws s3 cp s3://${MY_BUCKET}/test.txt.gz test.txt.gz
@AmitBaranes谢谢您的回复。然而,下载不是问题所在。问题在于本地应用
gunzip
后的编码(下载后)。