我们可以使用 AWS Glue 将文件从一个 S3 文件夹复制到另一个 S3 文件夹吗?

2023-11-22

我需要将压缩文件从一个 AWS S3 文件夹复制到另一个文件夹,并希望将其作为计划的 AWS Glue 作业。我找不到这样一个简单任务的例子。如果您知道答案请帮忙。答案可能就在 AWS Lambda 或其他 AWS 工具中。

非常感谢!


您可以这样做,并且可能有一个使用 AWS Glue 的理由:如果您有链接的 Glue 作业并且glue_job_#2成功完成后触发glue_job_#1.

下面的简单 Python 脚本从一个 S3 文件夹中移动一个文件 (source)到另一个文件夹(target) 使用boto3库,并可选择删除其中的原始副本source目录。

import boto3

bucketname = "my-unique-bucket-name"
s3 = boto3.resource('s3')
my_bucket = s3.Bucket(bucketname)
source = "path/to/folder1"
target = "path/to/folder2"

for obj in my_bucket.objects.filter(Prefix=source):
    source_filename = (obj.key).split('/')[-1]
    copy_source = {
        'Bucket': bucketname,
        'Key': obj.key
    }
    target_filename = "{}/{}".format(target, source_filename)
    s3.meta.client.copy(copy_source, bucketname, target_filename)
    # Uncomment the line below if you wish the delete the original source file
    # s3.Object(bucketname, obj.key).delete()

参考:S3 客户端副本上的 Boto3 文档

注意:我会使用f-strings用于生成target_filename,但 f 字符串仅在 >= Python3.6 中受支持,并且我相信默认的 AWS Glue Python 解释器仍然是 2.7。

参考:f 弦上的 PEP

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

我们可以使用 AWS Glue 将文件从一个 S3 文件夹复制到另一个 S3 文件夹吗? 的相关文章

随机推荐

  • 如何快速将分钟添加到当前时间

    我是 Swift 新手 正在尝试调度程序 我选择了开始时间 需要在开始时间上添加 5 分钟 或其倍数 并将其显示在UILabel IBAction func timePickerClicked sender UIDatePicker var
  • 有没有办法从 bash 运行 zip 文件中的 python 脚本?

    我知道有一种方法可以使用 python 导入 zip 文件中的模块 我在 zip 文件中创建了一种自定义 python 包库 我也想将我的 任务 脚本放入这个包中 这些脚本正在使用该库 然后 使用 bash 我想调用 zip 文件中所需的脚
  • cmdlet 如何知道何时真正应该调用 WriteVerbose()?

    cmdlet 如何知道何时really应该打电话WriteVerbose WriteDebug 等等 也许我错过了一些简单的事情 但我找不到答案 所有 cmdlet 到目前为止我见过的实现只是调用WriteVerbose 没有任何 犹豫 我
  • 在solaris中获取昨天的日期

    我正在运行 SunOS bash 3 00 uname a SunOS lvsaishdc3in0001 5 10 Generic 142901 02 i86pc i386 i86pc 我需要找到Yesterday s date in li
  • 如何在 web.xml 中的 标记中指定根上下文?

    我想在 WAR 文件中指定 Java Web 应用程序的根上下文 我怎样才能使用有效的方法来做到这一点web appXML 中的web xml file 哦 是的 我想以与应用程序服务器无关的方式执行此操作 这不能以与应用程序服务器无关的方
  • Typescript:我可以定义一个 n 长度的元组类型吗?

    我正在使用 Typescript 创建一个将棋游戏板 将棋盘有 9 个等级 我想将 9x9 多维数组断言为一种类型 以确保数组的大小和内容 目前我正在这样创建 9x9 板类型 type Board9x9 p P P P P P P P P
  • numpy.array 形状 (R, 1) 和 (R,) 之间的区别

    In numpy 一些操作恢复原状 R 1 但有些返回 R 这将使矩阵乘法更加繁琐 因为显式reshape是必须的 例如 给定一个矩阵M 如果我们想做numpy dot M 0 numpy ones 1 R where R是行数 当然 同样
  • 如何从颜色资源中获取 color-int?

    有什么方法可以从颜色资源中获取 color int 吗 我试图获取资源 R color myColor 中定义的颜色的各个红色 蓝色和绿色分量 以便我可以将三个搜索栏的值设置为特定级别 您可以使用 getResources getColor
  • 如何从android中的gradle依赖项添加的外部库目录中删除jar文件?

    首先 我在gradle中添加了依赖 然后同步项目 我们没有错误 但是当我们运行应用程序时 我们收到了一个错误 该错误也显示在图像中 app transformClassesWithJarMergingForDebug FAILED Erro
  • AppEngine Channel API - 检查通道是否仍然打开的最佳方法(服务器端)

    我已经在 AppEngine 上构建了一个社交网络 约会类型应用程序 目前正在添加基于 Channel API 构建的聊天 然而 我遇到的问题是用户可能会在聊天时重新加载或导航到新页面 就像在 Facebook 中一样 这意味着服务器不容易
  • Windows 上的 PHP PDO 安装 (xampp)

    我正在尝试开发一个可以在 PHP 上连接到尽可能多的不同数据库的 Web 应用程序 PDO http www php net manual en book pdo php 似乎是正确的接口 但我在安装我需要的所有不同 PDO 数据库驱动程序
  • 使用 Qt 4.4 的自定义停靠区域

    是否可以使用 Qt 4 4 创建自定义停靠区域 我知道这在 Qt 3 中是可能的 因为document建议 摘自文档 如果您需要创建自己的停靠区域 我们建议您创建 QWidget 的子类并将 Q3DockAreas 添加到您的子类 然而 在
  • “spark.yarn.executor.memoryOverhead”和“spark.memory.offHeap.size”之间的区别

    我在纱线上运行火花 我不明白以下设置有什么区别spark yarn executor memoryOverhead and spark memory offHeap size 两者似乎都是为 Spark 执行器分配堆外内存的设置 我应该使用
  • 以编程方式阅读、突出显示、保存 PDF

    我想编写一个小脚本 将在无头 Linux 服务器上运行 来读取 PDF 突出显示与我传递的字符串数组中的任何内容相匹配的文本 然后保存修改后的 PDF 我想我最终会使用类似的东西python 与 poppler 的绑定但不幸的是 文档几乎为
  • 带有圆角的数据网格模板

    I m creating DataGrid template with rounded corners but I faced with this problem 底角超出边界范围 怎么解决这个问题呢 我读过这篇文章 http diptim
  • 操纵可变参数的标准方法?

    这是一个奇怪的问题 但是有没有一种标准方法来操纵 a 的内容va list在将其传递给另一个函数之前 例如 假设我有两个函数 sum and vsum int vsum int n va list ap int total 0 for in
  • 从后台任务或服务确定当前前台应用程序

    我希望有一个在后台运行的应用程序 它知道任何内置应用程序 消息 联系人等 何时运行 所以我的问题是 我应该如何在后台运行我的应用程序 我的后台应用程序如何知道当前在前台运行的应用程序是什么 如果有经验人士的回复 我们将不胜感激 关于 2 我
  • 如何从阵列列表中添加多个音轨

    我想为单个音轨添加多个音轨video与此类似的文件https codepen io eabangalore pen NZjrNd 他们正在使用自己的jsvideojs 我有要切换的音轨列表 var usersAudioTrackList h
  • 为什么提交和签出后文件夹会留在我的本地 git 工作目录中

    我创建了一个文件夹 其中包含本地工作 git 结构中的文件 我使用 git checkout b 创建了一个新分支并使用了 git add 和 git commit m 将这些文件添加到我的本地分支 但是 当我执行 git checkout
  • 我们可以使用 AWS Glue 将文件从一个 S3 文件夹复制到另一个 S3 文件夹吗?

    我需要将压缩文件从一个 AWS S3 文件夹复制到另一个文件夹 并希望将其作为计划的 AWS Glue 作业 我找不到这样一个简单任务的例子 如果您知道答案请帮忙 答案可能就在 AWS Lambda 或其他 AWS 工具中 非常感谢 您可以