- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在亚马逊上还有另一个问题,它与文件上传有关。我正在使用 jqueryFileUpload和亚马逊API将文件上传到亚马逊S3。我已经成功上传它,但它涉及一个技巧。
我必须将图像存储在我的服务器上,然后使用 S3 的 putObjectFile 方法将其从那里移动到 S3。现在该插件具有裁剪/调整图像大小的强大功能,我长期以来一直在使用它们现在,当我将该插件与AWS集成时,我面临着上传的性能问题。上传所需的时间比正常情况要长,这引发了我们使用AWS S3而不是传统方式的问题。
我必须更改我的 UploadHandler.php文件以使其正常工作。这些是所做的更改。我将 AWS 上传代码的一部分添加到文件中,从第 735 行到第 750 行
$bucket = "elasticbeanstalk-2-66938761981";
$s3 = new S3(awsAccessKey, awsSecretKey);
$response = $s3->putObjectFile($file_path,$bucket,$file->name,S3::ACL_PUBLIC_READ);
$thumbResponse = $s3->putObjectFile('files/thumbnail/'.$file->name,$bucket,'images/'.$file->name,S3::ACL_PUBLIC_READ);
//echo $response;
//echo $thumbResponse;
if ($response==1) {
//echo 'HERER enter!!';
} else {
$file->error = "<strong>Something went wrong while uploading your file... sorry.</strong>";
}
return $file;
Here是 git 上 s3 类的链接。正常上传到我当前的服务器(不是亚马逊),相同的图像在15秒内上传,但在亚马逊S3上大约需要23秒,我无法弄清楚更好的解决方案。在上传到 S3 之前,我必须将图像存储在我的服务器上,因为我不确定是否可以动态处理它们并直接上传到 S3。
任何人都可以建议吗解决问题的正确方法?是否可以将图像大小调整为内存中的不同大小并直接上传到 S3,从而避免将其保存到我们的服务器的开销?如果可以,任何人都可以指导我正确的方向吗?
感谢您的关注。
最佳答案
我相信大约 8 秒是创建不同尺寸图像版本的开销。您可以采取不同的方法来消除上传时调整大小的开销。基本思想是让上传脚本完成执行并返回响应,并将调整大小过程作为单独的脚本进行。
我建议采用以下方法: 方法1.上传过程中不要调整大小!仅在第一次请求时动态创建调整大小的版本,并缓存生成的图像以直接为以后的请求提供服务。我在一些文章 other threads 中看到一些提及 Amazon CloudFront 作为解决方案的内容。在 Stackoverflow 中。
方法2.在上传原始图像后,作为单独的异步请求调用用于创建调整大小的版本的代码。缩放版本的推出将会有所延迟。因此,编写必要的代码来在网站中显示一些占位符图像,直到缩放版本可用。您必须找出某种方法来确定缩放版本是否可用(例如检查文件是否存在,或在数据库中设置一些标志)。 making asynchronous cURL requests are suggested here的一些方法如果你想尝试一下。
我认为这两种方法都具有相同的复杂程度。
建议其他一些方法如 answers for this other question .
关于php - Amazon S3 和 jqueryfileupload 插件的图像上传性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544628/
我已经设置了一个页面,可以通过单击一个按钮来添加 jQuery 文件上传插件的多个实例。我遇到的问题是当您将文件拖到其中一个实例时,它会将它们添加到所有实例中。我已经添加了开发人员建议的代码以防止这种
我尝试用 JqueryFileUpload 小部件替换经典输入文件。 这是我的背景: 我可以使用同一表单输入一个或多个文件。 该表单旨在创建服务器端对象(每个输入都是该对象的一个字段,每个文件都是
我在亚马逊上还有另一个问题,它与文件上传有关。我正在使用 jqueryFileUpload和亚马逊API将文件上传到亚马逊S3。我已经成功上传它,但它涉及一个技巧。 我必须将图像存储在我的服务器上,然
我正在使用 this file upload library使用 require.js。当我尝试运行它时,出现 404 not found 错误 localhost/js/jam/tmpl.js 40
我不得不放弃 uploadify,转而使用 jQueryFileUpload,以适应 Web 应用程序上的非 Flash 移动用户。但是,我的 upload.ashx 处理程序没有收到来自 jQuer
我是一名优秀的程序员,十分优秀!