如何将 AWS S3 url 转换为 boto 的存储桶名称?

2024-02-09

我正在尝试访问http://s3.amazonaws.com/commoncrawl/parse-output/segment/ http://s3.amazonaws.com/commoncrawl/parse-output/segment/桶与 boto。我不知道如何将其翻译为 boto.s3.bucket.Bucket() 的名称。

这就是我想要的要点:

s3 = boto.connect_s3()
cc = boto.s3.bucket.Bucket(connection=s3, name='commoncrawl/parse-output/segment')
requester = {'x-amz-request-payer':'requester'}
contents = cc.list(headers=requester)
for i,item in enumerate(contents):
    print item.__repr__()

我收到“boto.exception.S3ResponseError:S3ResponseError:400 Bad Request ...指定的存储桶无效...”


The AWS 文档列出了 S3 的四种可能的 url 格式 http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html-- 这是我刚刚拼凑起来的内容,用于提取所有不同 url 格式的存储桶和区域。

import re

def bucket_name_from_url(url):
    """ Gets bucket name and region from url, matching any of the different formats for S3 urls 
    * http://bucket.s3.amazonaws.com
    * http://bucket.s3-aws-region.amazonaws.com
    * http://s3.amazonaws.com/bucket
    * http://s3-aws-region.amazonaws.com/bucket

    returns bucket name, region
    """       
    match =  re.search('^https?://(.+).s3.amazonaws.com/', url)
    if match:
        return match.group(1), None

    match =  re.search('^https?://(.+).s3-([^.]+).amazonaws.com/', url)
    if match:
        return match.group(1), match.group(2)

    match = re.search('^https?://s3.amazonaws.com/([^\/]+)', url)
    if match:
        return match.group(1), None

    match =  re.search('^https?://s3-([^.]+).amazonaws.com/([^\/]+)', url)
    if match:
        return match.group(2), match.group(1)

    return None, None

像这样的事情真的应该进入 boto ......亚马逊,我希望你在听

编辑 2018 年 10 月 10 日: 存储桶正则表达式现在应该捕获带句点的存储桶名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 AWS S3 url 转换为 boto 的存储桶名称? 的相关文章

  • Cloudfront 异常“If-Match 版本缺失或对资源无效。”更新分布时

    使用 AWS Node SDK 更新 Cloudfront 发行版时出现以下异常 message The If Match version is missing or not valid for the resource code Inva
  • 如何使提供程序假设_角色块有条件

    我有一个provider我想给的块assume role属性 但前提是它没有在我的本地计算机上运行 我定义了一个变量islocal在所有环境中 tfvars文件 只有本地文件具有该值true 这是provider block provide
  • AWS AppSync 授权

    我计划使用 AWS Appsync 迁移 lambda 函数中的 graphQL 终端节点 该函数由 API 网关的 POST 触发 我研究 AppSync 主要是因为订阅 我无法使用 Lambda 函数创建订阅 我的身份验证机制基于 Au
  • Alexa Skill - 以编程方式更新意图

    我正在尝试创建一个 Alexa 技能 它可以使用相当广泛的可能的短语数量 手写太多了 我可能可以通过编程方式生成列表 但它经常更改 因此我希望它经常更新 我是否可以调用 Amazon API 来更新自定义槽类型的可能值 而无需始终手动登录并
  • 如何在 Ubuntu 12.04 上启动 postgresql 服务器

    我刚刚在 Ubuntu 12 04 服务器 由 Amazon EWS 托管 上安装了 PostgreSQL 9 1 当我尝试启动psql命令 出现以下错误消息 psql 无法连接到服务器 没有这样的文件或目录是 服务器在本地运行并接受 Un
  • 如何使用 symfony / gauferette / VichUploaderBundle 将文件上传到 Google Cloud Storage

    早上好 我正在上传我的文件locally通过VichUploaderBundle 每件事都很完美 现在我不想再在本地存储我的文件 我想将它们存储在谷歌云存储 我找到KnpGaufrette捆绑包可用于在云中存储文件 那么 有没有关于如何配置
  • 使用 AWS Lambda 从 AWS S3 读取并提取巨大的 zip 文件

    我正在开发数据管理应用程序 客户可以上传zip file approx 250 MB 与多个text files approx 1500 MB on AWS S3 但由于记忆有限aws lamda 最大 1536MB 大小 我能够提取 50
  • 使用 Ruby 获取 AWS 区域名称

    我正在为 AWS 开发 Rails 应用程序 并希望为区域名称创建下拉菜单 例如 us east 1 等 如果有人已经创建了 gem 来获取它们 我想使用它 有人知道这样的 gem 或有用的 API 吗 适用于 Ruby 的 AWS 开发工
  • 如何使用 aws-cli 访问 Google Cloud Storage 存储桶

    我可以访问 aws 和 Google Cloud Platform 是否可以执行以下操作 使用 aws cli 列出 Google Cloud Storage 存储桶 使用 aws cli 将 CSV 文件放入 Google Cloud S
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV
  • 使用 AWS Lambda 函数订阅 Amazon SNS 主题?

    我们可以订阅一个亚马逊社交网络服务主题使用AWS Lambda功能 是的 在 的帮助下sns subscribe https docs aws amazon com AWSJavaScriptSDK latest AWS SNS html
  • 如何让AWS Lambda停止执行?

    我有一个AWSLambda 函数执行操作Kinesis Firehose 该函数使用退避机制 此时我认为这是浪费我的计算时间 但无论如何 在我的代码中的某个时刻 我希望执行失败 我应该使用什么命令来停止执行 附注 我发现有这样的命令 con
  • Laravel 作业推送至 Amazon SQS 但未处理

    我正在运行 Laravel 5 3 我正在尝试测试队列作业 并且我已将队列配置为使用 Amazon SQS 我的应用程序能够将作业推送到队列中 并且我可以在 SQS 中看到该作业 但它留在那里 从未被处理 我尝试过跑步php artisan
  • 同一区域内但属于不同账户的AWS数据传输费用如何?

    如果 S3 gt EC2 或 EC2 gt EC2 位于同一 AWS 区域 则数据传输费用似乎是免费的 S3价格注意事项 您需要为进出 Amazon S3 的所有带宽付费 except对于以下情况 当Amazon Elastic Compu
  • 在describe-vpcs中按标签过滤的正确语法是什么?

    我试图理解 aws ec2 cli 调用 我希望描述所有 VPC 然后在自定义标记上描述文件管理器 vpcname myvpc 但是在尝试多种组合后 我不断收到有关 filters 的格式和使用的冲突错误 使用作为参考 http docs
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • Amazon SageMaker 不支持的内容类型应用程序/x-image

    我在 Sagemaker 中部署了基于 TensorFlow keras 的 CNN 模型 现在为了调用推论 我遵循了这个tutorial https aws amazon com blogs machine learning classi
  • AWS Lambda。延迟调用

    我需要使用亚马逊工具构建 任务调度程序 主要问题是我需要执行一次任务 延迟很大 可能是几个小时或几周 我尝试研究如何使用 CloudWatch 和 Lambda 函数构建它 据我了解 我需要使用单独的规则来执行一次超时 但 AWS 只允许我
  • AWS 无法验证提供的访问凭证。 AuthFailed 仅在特定区域

    我正在尝试通过 linux aws CLI 执行一些操作 我的凭据文件 100 正确 用户拥有 EC2FullAccess 和 Amdinistrative 最高级别 权限 我能够执行所有命令 问题是以下区域产生 AuthFailed 错误
  • 正确的 aws cli 语法以在非默认 VPC 中查找 VPC 安全组

    这是来自的后续问题在describe vpcs中按标签过滤的正确语法是什么 https stackoverflow com questions 27057932 what is the correct syntax for filterin

随机推荐