Amazon web services 如何在S3中从zip存档中提取文件

Amazon web services 如何在S3中从zip存档中提取文件,amazon-web-services,amazon-s3,cloud,Amazon Web Services,Amazon S3,Cloud,我在S3中的某个位置上传了一个zip档案(比如/foo/bar.zip) 我想提取bar.zip中的值并将其放在/foo下,而无需下载或重新上传提取的文件。我如何做到这一点,使S3被视为非常像一个文件系统S3并不是真正设计为允许这样做的;通常情况下,您必须下载文件,对其进行处理并上载提取的文件 但是,可能有以下几种选择: 您可以使用s3fs和FUSE将S3存储桶装载为本地文件系统(请参阅和)。这仍然需要下载和上载文件,但它将这些操作隐藏在文件系统接口后面 如果您主要关心的是避免将数据从AWS下载

我在S3中的某个位置上传了一个zip档案(比如/foo/bar.zip)
我想提取bar.zip中的值并将其放在/foo下,而无需下载或重新上传提取的文件。我如何做到这一点,使S3被视为非常像一个文件系统

S3并不是真正设计为允许这样做的;通常情况下,您必须下载文件,对其进行处理并上载提取的文件

但是,可能有以下几种选择:

  • 您可以使用
    s3fs
    FUSE
    将S3存储桶装载为本地文件系统(请参阅和)。这仍然需要下载和上载文件,但它将这些操作隐藏在文件系统接口后面

  • 如果您主要关心的是避免将数据从AWS下载到本地机器上,那么您当然可以将数据下载到远程机器上,并在远程机器上进行工作,无论是否使用
    s3fs
    。这将数据保存在Amazon数据中心内

  • 您可以使用对文件执行远程操作,而无需将其下载到本地计算机上

  • 您需要创建、打包和上传一个用
    node.js
    编写的小程序来访问、解压缩和上传文件。此处理将在后台的AWS基础设施上进行,因此您无需将任何文件下载到自己的计算机上。看

    最后,您需要找到一种触发此代码的方法—通常,在Lambda中,将zip文件上载到S3会自动触发此代码。如果文件已经存在,您可能需要通过AWS API提供的
    invoke async
    命令手动触发它。请参阅AWS Lambda和


    然而,这是一种非常复杂的避免下载的方法,可能只有在您需要处理大量zip文件时才值得!另外请注意(截至2018年10月),Lambda函数的时间限制为15分钟(即3秒),因此如果您的文件非常大,则可能会耗尽时间-但由于
    /tmp
    中的暂存空间限制为500MB,因此您的文件大小也受到限制。

    现在AWS Lambda上的执行时间限制为5分钟(每分钟)。不过值得注意的是。/tmp Lambda中的划痕空间也只有500mb(perhttps://aws.amazon.com/lambda/faqs/)有人问我有关IdeDeveloper文章的登录详细信息-是否会发生这种情况?我也知道了。如果您在请求登录时点击“取消”,则该页面可在谷歌缓存中使用……截至2020年,AWS Lambda的最大运行时间为15分钟。