【问题标题】:Python script that moves specific files between S3 buckets在 S3 存储桶之间移动特定文件的 Python 脚本
【发布时间】:2018-06-26 11:20:01
【问题描述】:

所以在 Python 编码方面我还是个菜鸟,但我想知道是否有人可以帮助我解决问题。

我工作的客户使用电子发现系统 Venio。他们有一个 Web、应用程序、数据库和 linux 服务器,运行 AWS 中的 EC2 实例。

现在,当客户将文档上传到他们的服务器时,他们最终会将内容重新下载到另一个驱动器,这给他们自己带来了额外的工作。在他们的系统上提供文件时,还有一个速度问题。

在 Lambda 中使用脚本设置自动快照后,我开始考虑将它们的海量文件存储在 S3 中,在 CloudFront 之后可能是更好的选择。

有谁知道是否有办法制作一个 Python 脚本来查找文件中的关键字(例如“使用”、“丢弃”),并自动将它们分成不同的存储桶?

任何建议将不胜感激!

更新:

所以这是我开始的一个脚本:

import boto3

# Creates S3 client
s3 = boto3.client('s3')

filename = 'file.txt'
bucket_name = 'responsive-bucket'

keyword_bucket = {
    'use': 'responsive-bucket',
    'discard': 'non-responsive-bucket',
}

基本上我想要的是当客户端通过 Web API 上传文件时,会触发一个 python 脚本来查找响应或非响应的关键字。一旦识别出这些密钥,它就会将这些文件放入相应的命名存储桶中。响应文件将保留在标准 s3 存储桶中,无用文件将进入 s3-IA 存储桶。在设定的时间之后,它们将进入 Glacier 的生命周期。

任何帮助都会很棒!!!

【问题讨论】:

    标签: python amazon-s3 automation aws-lambda amazon-glacier


    【解决方案1】:

    如果您可以构建keywords => bucket names 的映射,则可以使用字典。例如:

    keyword_bucket = {
        'use': 'bucket_abc',
        'discard': 'bucket_xyz',
        'etc': 'bucket_whatever'
    }
    

    然后您打开文件并搜索您的关键字。当关键字匹配时,您使用上面的字典找到文件应该去的对应存储桶。

    【讨论】:

    • 感谢您回复雷纳托!我会尝试一下,看看它是如何工作的
    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2015-07-21
    • 2021-07-03
    • 2018-04-30
    • 1970-01-01
    • 2020-05-29
    相关资源
    最近更新 更多