关于AWS-S3-Bucket-Console-Web控制页面上的Creation date与命令行-API方式如何获取到真正的CreationDate
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于AWS-S3-Bucket-Console-Web控制页面上的Creation date与命令行-API方式如何获取到真正的CreationDate相关的知识,希望对你有一定的参考价值。
首先,说明一下,在AWS S3 Bucket Console web 界面看到的Create date 这个日期是真正的s3 桶子的创建的日期
当s3 桶子过多时,我们需要统一收集创建日期,这就需要使用到aws cli 或者 AWS SDK for Python (Boto3) 等方式了
但是笔者在使用命令行及编程的方式获取到的日期,和页面对比后,发现有的是不一样的
从这里可以看出创建日期为:November 24, 2022, 09:47:32 (UTC+08:00)
但是笔者又通过aws cli 的方式查询了一下(AWS SDK for Python (Boto3))效果也是一样的,指定不同的region,得到不同的时间
[qq-5201351@localhost ~]$ aws s3 ls --region cn-north-1 |grep aws-bucket$ 2022-11-24 09:47:32 aws-bucket [qq-5201351@localhost ~]$ aws s3 ls --region cn-northwest-1 |grep aws-bucket$ 2023-03-01 13:52:42 aws-bucket [qq-5201351@localhost ~]$
首先这个S3 桶是创建在cn-northwest-1 宁夏Region的,从宁夏Region的查询出来的居然和console页面上的创建日期不一样
而且奇怪的是,反而当我们指定cn-north-1,北京Region时,查询出来的才是真正的创建日期
然后笔者还以为会不会有个规律,在宁夏创建的s3桶子,就得需要去北京Region才能看到创建日期,反之也一样
不过观察了几个其他的S3桶子,发现并不是这个规则,最后查询了官网的一些文档、才有了如下的了解
1、S3 服务在console上并没有区分Region的,通过命令无论指定北京还是宁夏,也都能查询出相同的文件对象
2、但是我们在AWS S3 bucket在创建时,必须指定Region的,这个是约束我们s3的数据存储在那个物理区域,而且不能修改
3、我们在通过aws cli 或者 api的方式指定不同的Region获取到的日期可能会有不同,笔者在API文档界面也看到如下一段说明
其中理解一下,也就是说,CreateDate是创建日期,但是当我们对bucket作出一些更改时,如修改policy,这个日期会变化
笔者也试过,就算修改一个s3的tag都会发生变化,但是页面上的CreateDate肯定也是来自于此,那就只能有如下一种解释和理解了,可用于编程查询中
通过不同的Region查询出来的CreateDate,时间更早的那一个肯定就是真正的创建日期,其他Region查询出来的最晚的就是s3 bucket的改变日期
因此如果我们需要通过aws cli 或者AWS SDK for Python (Boto3) 的试获取s3 桶真正的创建日期,就需要查询每个Region日期,取最小值,即最早的那个日期
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17216425.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!
以上是关于关于AWS-S3-Bucket-Console-Web控制页面上的Creation date与命令行-API方式如何获取到真正的CreationDate的主要内容,如果未能解决你的问题,请参考以下文章
将标头发送到客户端后无法设置标头-Nodejs + AWS-S3 getObject