关于aws-s3-bucket-静态网站托管相关的查询-S3.Client.get_bucket_website(**kwargs)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于aws-s3-bucket-静态网站托管相关的查询-S3.Client.get_bucket_website(**kwargs)相关的知识,希望对你有一定的参考价值。
关于aws-s3-bucket-静态网站托管相关的查询,这里笔者主要整理一下基于AWS SDK for Python (Boto3)方式,相关的判断和逻辑
1、首先是判断s3-bucket有没有开启静态网站托管,即页面上的 Static website hosting 的值 Enabled|Disabled
可以通过ResponseMetadata=S3client.get_bucket_website(Bucket=Name)看是否会抛出异常,如果一个s3 bucket没有开启静态网站则会输出
botocore.exceptions.ClientError: An error occurred (NoSuchWebsiteConfiguration) when calling the GetBucketWebsite operation:
The specified bucket does not have a website configuration, 判断逻辑如下图所示
2、接下来就是托管类型的判断,Hosting type,目前只要开启了静态网站托管,
就必须从(Host a static website|Redirect requests for an object)选择一种,笔者这里是一个Host a static website类型的,于是能得到如下的返回信息:
\'ResponseMetadata\': \'RequestId\': \'2SR4CJWMC8VM85NX\', \'HostId\': \'6Y9F6aMU+57rKMlzmkvLtkI3zf6W8PyFDuFIk0lAHlg2UvBT/QwlYcOcfHxvV3psaRPsefNS2Rg=\', \'HTTPStatusCode\': 200, \'HTTPHeaders\': \'x-amz-id-2\': \'6Y9F6aMU+57rKMlzmkvLtkI3zf6W8PyFDuFIk0lAHlg2UvBT/QwlYcOcfHxvV3psaRPsefNS2Rg=\', \'x-amz-request-id\': \'2SR4CJWMC8VM85NX\', \'date\': \'Sat, 25 Mar 2023 03:13:22 GMT\', \'content-type\': \'application/xml\', \'transfer-encoding\': \'chunked\', \'server\': \'AmazonS3\', \'RetryAttempts\': 0, \'IndexDocument\': \'Suffix\': \'index.html\'
ResponseMetadata数据每次访问都会不一样,真正有效的数据为:\'IndexDocument\': \'Suffix\': \'index.html\'
只有托管静态网站类型时才会有/定义 IndexDocument,而且必须要有此值, 因此我们就可以通过这个字段来判断 托管类型 了,原理与上面的一样
3、对于Redirect requests for an object (重定向对某个对象的请求)类型的返回数据如下,注若页面Protocol为None,则将没有Protocol字段
\'ResponseMetadata\': \'RequestId\': \'V9WW0D0FN889E9CY\', \'HostId\': \'rHp0bm+aTgZGZIzxtU2yXQaL5s0JgnmEdvGsRZdzkltPUK1wew6dEuqCSw5ZWeUGIbcSOKxA7m/mBdjcEGB6vQ==\', \'HTTPStatusCode\': 200, \'HTTPHeaders\': \'x-amz-id-2\': \'rHp0bm+aTgZGZIzxtU2yXQaL5s0JgnmEdvGsRZdzkltPUK1wew6dEuqCSw5ZWeUGIbcSOKxA7m/mBdjcEGB6vQ==\', \'x-amz-request-id\': \'V9WW0D0FN889E9CY\', \'date\': \'Sat, 25 Mar 2023 05:07:59 GMT\', \'content-type\': \'application/xml\', \'transfer-encoding\': \'chunked\', \'server\': \'AmazonS3\', \'RetryAttempts\': 0, \'RedirectAllRequestsTo\': \'HostName\': \'test.com\', \'Protocol\': \'https\'
4、关于 存储桶网站终端节点(Bucket website endpoint),可以在返回值中是看不出来的,但是对于s3静态网站托管,基名称格式是固定有规律的,如下:
http://s3-bucket-Name.s3-website.Region.amazonaws.com.cn
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17254489.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!
以上是关于关于aws-s3-bucket-静态网站托管相关的查询-S3.Client.get_bucket_website(**kwargs)的主要内容,如果未能解决你的问题,请参考以下文章
关于AWS-S3-Bucket-Console-Web控制页面上的Creation date与命令行-API方式如何获取到真正的CreationDate