springboot zip文件上传无法解压
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot zip文件上传无法解压相关的知识,希望对你有一定的参考价值。
参考技术A 解决方法如下:1、使用xshell登录服务器。
2、安装lrzsz软件。
3、使用rz-y命令然后进行文件上传。
4、使用sz命令下载,命令格式如下,之后就可以重新试一下文件上传后能不能解压。
上传 ZIP 文件到 S3,使用 EC2 解压
【中文标题】上传 ZIP 文件到 S3,使用 EC2 解压【英文标题】:Uploading ZIP file to S3, use EC2 to Unzip 【发布时间】:2012-03-31 22:27:28 【问题描述】:我有一个 Codeigniter Web 应用程序,它每小时都会将许多小文件上传到 Amazon S3,这导致我的 S3 请求费用迅速飙升。解决这个问题的一种方法是压缩文件,将压缩文件上传到 S3,然后在 S3 上解压缩。
这可以使用 EC2 完成吗?还是有更好的方法来实现这一目标?谢谢!!
编辑:如果我要使用 EC2,我是否使用 PHP 来触发 EC2 实例的创建,上传解压缩压缩文件所需的 PHP 文件,将解压缩文件复制到 S3,然后销毁 EC2 实例?
【问题讨论】:
你不能在 S3 上存储压缩文件吗? 我希望各个解压缩文件在 S3 上可用。压缩它的原因(100 个小文件到 1 个 zip 文件中)是为了减少PUT
请求的数量,这显着增加了 S3 的使用成本。
@Daan 我在forums.aws.amazon.com/message.jspa?messageID=243519 进行了检查,看来从 EC2 到 S3 的 COPY 请求是免费的。谁能证实这一点?
我认为他们讨论的是数据传输费用。您需要为您提出的实际请求数量单独收费,我认为这些请求即使来自 EC2 也不是免费的 :) 有人可以确认吗?
【参考方案1】:
您可以在 lambda 中编写代码来解压缩 S3 存储桶的文件,您只需使用它,AWS Lambda 将为您完成。
参考:
-
https://github.com/carloscarcamo/aws-lambda-unzip-py/blob/master/unzip.py
https://github.com/mehmetboraezer/aws-lambda-unzip
【讨论】:
我喜欢你的两个参考,但我不知道如何调和指向外部资源的链接不被视为有效的 SO 答案这一事实。虽然您可以包含 py 文件的内容(即使您没有在第二个引用中直接链接到它,但两者都是单个 py 文件),但“感觉”并不完全正确。但如果引用得当,我想它只是将脚本存档以供后代使用。【参考方案2】:我一直在使用此服务解压缩包含数千个小图像文件的文件,我上传的每个 zip 文件大约 4GB,使用http://www.cloudzipinc.com/service/s3_unzip 解压缩的成本约为 1 美元,也许这可能对某人有所帮助。
话虽如此,您可能会发现将 Python 与 Boto 库一起使用会更容易。这将比 PHP 更有效。
【讨论】:
【参考方案3】:如果您在同一地区有一台 EC2 机器,我建议您将其上传到那里,然后将其解压缩到 s3。 S3 无法自行解压缩,因为它完全是静态的。
ec2 和 s3 之间不收取任何费用,因此 ec2 可以处理解压缩,然后将其写入您的 s3 存储桶,而无需额外的传输费用。
【讨论】:
带宽是免费的,但您需要为 PUT 付费(目前每 1,000 个请求 0.005 美元)。如果您有一个包含 10,000 个小文件的 zip 文件,则上传会花费一些费用,更重要的是,它需要一段时间。 亲爱的@Akshat,如果有的话,请分享链接或代码以将文件夹(刚刚解压缩)从 EC2 写入 S3,不胜感激 没有必要为这么简单的事情使用 ec2。使用 Lambda。 Aman Garg 链接到的项目可以轻松修改为从 S3 中提取文件,而不是作为上传接收文件。 github.com/mehmetboraezer/aws-lambda-unzip @BrunoBronosky lambda 函数每次执行最多运行 15 分钟。如果 zip 很大,它将失败。 lambda 也有有限的空间(atm 512Mb at /tmp),除非磁盘附加了额外的空间。所以这是另一个没有额外配置的硬限制。【参考方案4】:S3 只是存储。您上传的任何文件都是存储的文件。您无法上传 zip 文件,然后在 S3 中将其解压缩。如果您编写了应用程序,我能说的最好的事情就是尝试重新设计您存储文件的方式。 S3 请求非常便宜……您一定发出了很多请求。
【讨论】:
您可以在上传时触发一个 lambda 函数作业,将其解压缩到指定的存储桶。以上是关于springboot zip文件上传无法解压的主要内容,如果未能解决你的问题,请参考以下文章