首页 > 其他分享 >关于aws-s3-bucket-静态网站托管相关的查询-S3.Client.get_bucket_website(**kwargs)

关于aws-s3-bucket-静态网站托管相关的查询-S3.Client.get_bucket_website(**kwargs)

时间:2023-03-25 12:56:52浏览次数:52  
标签:website get s3 托管 bucket 静态 网站

关于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、关于 存储桶网站终端节点(Bucket website endpoint),可以在返回值中是看不出来的,但是对于s3静态网站托管,基名称格式是固定有规律的,如下:

http://{s3-bucket-Name}.s3-website.{Region}.amazonaws.com.cn

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17254489.html

 

标签:website,get,s3,托管,bucket,静态,网站
From: https://www.cnblogs.com/5201351/p/17254489.html

相关文章

  • [ant-design] a-select,a-date-picker 下拉菜单不跟着滚动走(getPopupContainer)
    问题:a-select<a-select:getPopupContainer="(triggerNode)=>triggerNode.parentNode"></a-select>a-date-picker<a-date-picker:getCalendarContainer="(triggerNode)......
  • Qt5.12实战之Widget信号与槽使用
    通过设计界面自动生成信号与槽关联右击要生成信号与槽的控件为控件生成点击信号与槽自动生成的槽与槽函数实现生成的实现默认为空,块内的业务代码自己实现,下面实......
  • Qt5.12实战之QWidget使用
    main.cpp#include"mainwindow.h"#include<QApplication>#include<QDebug>intmain(intargc,char*argv[]){QApplicationa(argc,argv);MainWindoww......
  • C#之什么是NuGet
    背景:在传统项目中,引用一些第三方程序集(说通俗点就是dll),我们那个时候就是将dll下载下来,然后手工添加到项目中,这种方式的话就是说版本匹配很麻烦,比如你现在下的dll文件,不匹配......
  • expressjwt的getToken如何使用
    expressjwt()是一个Express中间件,用于验证JWT(JSONWebTokens)。它会检查请求头中是否存在Authorization字段,并且该字段的值是否是符合JWT规范的格式。如果JWT有效......
  • 如何提高 Website 的 organic traffic?
    Lighthouse中的SEOMetric和网站在Google搜索引擎结果列表中的排名之间存在一定的关系,但它们并不是直接相关的指标。Lighthouse中的SEOMetric包括一些与搜索引擎......
  • 发送get请求 实现功能:点击button显示一条消息
    JS单独格式文件:Ajax//npmiexpress安装express//引入constexpress=require('express')//创建应用对象constapp=express();//创建路由app.get('/server',(req......
  • cURL error 60: SSL certificate problem: unable to get local issuer certifica 解
    无法获取本地颁发者证书Windows版本linux版本解决方案cURLerror60:SSLcertificateproblem:unabletogetlocalissuercertifica解决Laravel使用GuzzleHttp请求第......
  • Qt—TableWidget组件使用注意事项
    TableWidget组件当开启了sortingEnable后,重新插入数据时,有时数据会消失。解决方案:每次在执行插入数据时,插入前关闭sortingEnable,插入后再打开sortingEnable。如图所示:......
  • gets和scanf的区别
    1、 gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。例如:如果输入为"hello world"时,上面程序的运行结果是"hello world"。而如果用s......