如何使用boto读取S3上的二进制文件?

2024-02-13

我在 S3 文件夹(私人部分)中有一系列 Python 脚本/Excel 文件。 如果它们是公开的,我可以通过 HTTP URL 读取访问它们。

想知道如何以二进制方式访问它们以执行它们?

 FileURL='URL of the File hosted in S3 Private folder'
 exec(FileURL)
 run(FileURL)

我不完全确定我理解你的问题,但这里有一个基于我如何解释你的问题的答案。只要你知道你的存储桶名称 and 对象/键名,您可以执行以下操作boto3(也许还有 boto,尽管我不确定):

#! /usr/bin/env python3
#
import boto3
from botocore.exceptions import ClientError

s3_bucket   = 'myBucketName'
s3_key      = 'myFileName' # Can be a nested key/file.
aws_profile = 'IAM-User-with-read-access-to-bucket-and-key'
aws_region  = 'us-east-1'

aws_session  = boto3.Session(profile_name = aws_profile)
s3_resource  = aws_session.resource('s3', aws_region)
s3_object    = s3_resource.Bucket(s3_bucket).Object(s3_key)

# In case nested key/file, get the leaf-name and use that as our local file name.
basename = s3_key.split('/')[-1].strip()
tmp_file = '/tmp/' + basename
try:
   s3_object.download_file(tmp_file) # Not .download_fileobj()
except ClientError as e:
   print("Received error: %s", e, exc_info=True)
   print("e.response['Error']['Code']: %s", e.response['Error']['Code'])

顺便说一下,您可以从您的 PUBLIC URL 添加 Python 语句以从中解析出存储桶名称和键/对象名称。

我希望这有帮助。

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

如何使用boto读取S3上的二进制文件? 的相关文章

随机推荐

  • 使用 .NET 4.0、3.5 时,UnmanagedFunctionPointer 会导致堆栈溢出

    我在点击处理程序中有一个简单的函数 它有一个 try catch 块 如果我在此 try catch 块中抛出异常 它会成功捕获异常 如果我在抛出异常之前调用非托管 DLL 则异常不会被处理且不会被捕获 未修改的 DLL 调用正在做什么 可
  • 使用 Django Rest Framework 的 ListSerializer 批量创建

    我尝试使用 Django Rest Framework 为某个表批量创建行 我看到在文档 http www django rest framework org api guide serializers customizing multip
  • git lfs“对象”占用大量磁盘空间

    我有一个包含很多二进制文件 主要是 pdf 的项目 我正在使用 git lfs 该项目大约有 60mb 但我发现我的 git lfs objectsdirector 大约有 500mb 我认为这些是以前提交的缓存版本 有没有办法优雅地删除这
  • Visual Studio 2013 IntelliSense 停止为 ASP.NET MVC5 控制器工作

    我在 Visual Studio 2013 ASP NET MVC 5 项目中面临一个奇怪的问题 突然间 MVC 5 项目的 Controller 类中的 IntelliSense 根本不起作用 我的解决方案中有其他类库项目 并且 Inte
  • 命名与通配符导入为何/如何影响参数?

    所以 我正在修改一些基本的 python tkinter 程序 并将我正在阅读的书中的 python 2 x 代码翻译为 3 x 以确保我理解所有内容 我还尝试使用 正确的 命名导入而不是通配符导入来编写代码 即from tkinter i
  • defiant.js 节点中带有空格的 XPath 表达式

    我在用反抗者 js http www defiantjs com 用于搜索 json 根据他们的文档 我需要提供 xpath 来从 json 中搜索特定元素 当节点中没有空格时我成功了 但我的 json 现在包含空格 这是我的 csv 我想
  • F# Seq 的一个实现问题

    我最近正在深入研究 F 源代码 在 Seq fs 中 Binding We use a type defintion to apply a local dynamic optimization We automatically right
  • 如何使用rails format.json [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 OSX 下卸载 Eclipse?

    我在 Mac OS X 10 5 6 上运行 Eclipse SDK 3 4 0 每次我尝试通过 软件更新 安装新内容时 都会显示消息 您选择的软件项目可能对当前安装无效 所以我要卸载它并重新安装 Eclipse 我应该删除 Eclipse
  • 相对于 .js 文件的 Angular 指令 templateUrl

    我正在构建一个角度指令 它将在几个不同的位置使用 我不能总是保证使用该指令的应用程序的文件结构 但我可以强制用户将directive js and directive html 不是真实的文件名 在同一文件夹中 当页面评估时directiv
  • 第一个参数不是开放的 RODBC 通道

    我通过 DNS 连接到 Oracle 数据库 在 tnsnames ora 上设置名称为 database 的连接 我能够成功运行以下代码 con lt DBI dbConnect odbc odbc database UID user P
  • Hibernate 搜索问题 - 无法初始化代理 - 没有会话

    使用休眠添加新记录时出现以下异常 我还使用 Hibernate 搜索来创建索引 这是我的例外 Jun 11 2009 1 01 23 PM org hibernate LazyInitializationException
  • C# 中的垃圾收集未执行。为什么?

    我尝试了一个简单的实验来验证垃圾收集器的功能 参考文献3 9 自动内存管理 https msdn microsoft com en us library aa691138 28v vs 71 29 aspx MSDN 关于自动内存管理 NE
  • 从 UIWebView 中清除凭据

    我在这里所做的是获取具有身份验证的 URL 因此 我使用该功能 void connection NSURLConnection connection didReceiveAuthenticationChallenge NSURLAuthen
  • 使用 Flutter 在谷歌地图中添加标记

    我已经成功在我的 flutter 应用程序中创建了一个谷歌地图 并且我能够显示我的位置以及使用纬度和经度的标记 有谁知道如何为谷歌地图中已存在的企业创建标记 我应该向标记传递什么来识别已经在谷歌地图中的企业 谢谢 您可以使用地点搜索 htt
  • 如何使用 ssh 在 Heroku 上保持日志尾部处于活动状态?

    Using heroku logs tail这几分钟效果很好 然后它停止显示日志 看来 ssh 连接超时并终止 没有错误或消息 在 Ubuntu 11 04 中使用有线连接 我将以下内容添加到 ssh config 中 ServerAliv
  • 绘制逻辑回归的决策边界

    我正在尝试实施逻辑回归 我已将特征映射到 x1 2 x2 0 x1 1 x2 1 形式的多项式 现在我想绘制相同的决策边界 经历了这一切之后answer https stackoverflow com a 22356551 1783688我
  • SQL 查询游程长度或连续相同值编码

    我的目标是获取一组按顺序排序的数据id并返回一个结果集 该结果集指示连续行数val列是相同的 例如 鉴于此数据 id val 1 33 2 33 3 44 4 28 5 44 6 44 我想看到这个结果 id val run length
  • 多页 tiff 的简单 WPF 页面选择

    我正在制作一个基本的 Tiff 查看器 需要能够选择要查看的页面 在 Winforms 中 我可以使用 selectActiveFrame 所以我想知道是否有一个与此等效的 WPF 谢谢 编辑 在winforms中 我在selectActi
  • 如何使用boto读取S3上的二进制文件?

    我在 S3 文件夹 私人部分 中有一系列 Python 脚本 Excel 文件 如果它们是公开的 我可以通过 HTTP URL 读取访问它们 想知道如何以二进制方式访问它们以执行它们 FileURL URL of the File host