amazon-web-services - 如何使用 boto3 检查仅存在特定的 s3 存储桶
问题描述
我正在尝试在我的aws
帐户中列出一个特定的存储桶。但我使用list_buckets()
了返回所有桶的方法。目的是检查这个桶是否存在
我本可以使用head_bucket()
方法,但它不会返回任何回报(根据boto3
文档)
我正在使用misral工作流程来获取此存储桶(仍在调用boto3
方法)而不是python
但是不知何故,有没有一种boto3
方法可以检查s3
存储桶是否存在?
我需要得到回报并相应地比较它以检查存储桶是否存在。因此,如果满足该条件,它只会触发mistral
stackstorm 工作流中的下一个任务。
如果你需要,我也会把工作流程放在一边。
check_if_exists:
action: aws_boto3.boto3action
input:
action_name: "list_buckets"
region: <% $.bucket_region %>
service: "s3"
publish:
return_code: <% task(check_if_exists).result.result.Buckets.select($.Name) %>
on-success:
- task_one
on-error:
- fail
解决方案
您应该能够使用head_bucket()
方法。如果存储桶存在并且您具有访问它的必要权限,这将返回 200 OK。如果存储桶不存在或者您没有权限,您将得到 403 或 404。
推荐阅读
- excel - 宏未显示在 Excel 功能区的列表中
- c++ - 设置值之前是否必须调用 promise.get_future() ?
- mysql - MySQL - str_to_date() 在更新查询中不起作用
- sql-server - 如果另一个表中不存在 SQL Server 更新数据
- c# - 使用 JSON 字符串中的正则表达式根据名称屏蔽值
- java - iterator.hasNext() 中令牌“<”的语法错误,无效的 AssignmentOperator
- jquery - 使用 jQuery 按其前导数字格式化选择列表
- vue.js - 无法在 Created() 中使用 Vue.js 数据
- php - 在 Laravel 中注册时自动归档字段
- javascript - javascript中的动态数据类型