我们有一个Web应用程序,需要使用EdgeCast或Amazon S3存储上传的图像。为此,我们需要先将这些图像重新上传到EdgeCast / S3。我能想到很多选择:
哪个是最佳解决方案,还有其他解决方案吗?我怀疑它是1还是2。
编辑:我的应用程序是PHP
答案 0 :(得分:3)
不确定EdgeCast但我知道使用Amazon S3时,最好的方法是将文件直接发送到文件服务器。见http://doc.s3.amazonaws.com/proposals/post.html
这样做可以提供HTML FORM,其中包含文件夹ID,文件名,公钥,时间戳等字段,以确保它是安全的,只有您可以上传到服务器。一旦上传完成,服务器将重定向他们的浏览器,他们重定向到您可以检查查询字符串以查明上传是否成功,然后将FileID记录到您的数据库中。
非常适合减少服务器负载并为用户提供更快的体验,但如果上传成功但DB插入失败,则可能导致孤立文件。
答案 1 :(得分:1)
EdgeCast存储支持Rsync / sFTP配置,以自动同步存储服务器中的内容。 EdgeCast还支持“反向代理”或“客户原始”配置,以将内容从另一个Web服务器自动提取到缓存中。您可以将S3用作此客户来源的位置,或使用EdgeCast自己的云存储服务或EdgeCast网络之外的任何其他Web服务器。
答案 2 :(得分:0)
我所做的是将文件上传到临时目录,然后运行一个cron脚本,将PUT的文件运行到AWS上,以免导致上传过程对最终用户花费更长时间。
答案 3 :(得分:0)
AWS提供SDK for PHP来执行此操作。它甚至支持多部分上传,这对开发者来说是个好消息。
应该注意的是,适用于PHP的AWS开发工具包也将执行重试逻辑,并且(如果您使用的是Multipart,您应该这样做)可以恢复上传失败。