当前位置: 首页 > 工具软件 > S3Uploader > 使用案例 >

将其他服务器文件上传至s3,无需使用生产服务器即可直接上传到s3(Direct upload to s3 without the use of a production server)...

皇甫智明
2023-12-01

无需使用生产服务器即可直接上传到s3(Direct upload to s3 without the use of a production server)

我们正在创建一个媒体驱动的网站,要求我们的用户通过互联网提交非常大的广播质量的视频文件。 我们希望通过消除使用我们的生产服务器(网站所在地)以及仅在用户和s3帐户之间建立连接来减少带宽问题。

为了让事情变得更有趣,我们的托管服务只允许通过PHP上传50MB ...

我在互联网上寻找一个可行的解决方案,任何人都可以帮忙吗?

进度条也很棒。

We are creating a media driven website that requires our users to submit very large broadcast quality video files over the internet. We want to cut bandwidth issues out by eliminating the use of our production server (where the website is), and just creating a connection between the user and a s3 account.

To make matters even more fun, our hosting service only allows 50MB an upload through PHP...

I've looked all over the internet for a feasible solution, can anybody help?

A progress bar would be terrific as well.

原文:https://stackoverflow.com/questions/6712733

更新时间:2020-02-14 22:40

最满意答案

最简单的方法是使用S3 POST上传API。 如果您需要进度条, 可以在HTML5浏览器上轻松完成 ; 如果您需要支持旧浏览器,则可能需要一个Flash上​​传器。

The simplest way to do this is with the S3 POST upload API. If you need a progress bar, you can do that easily on HTML5 browsers; if you need to support older browsers you may need a flash uploader.

相关问答

您可以使用DonovanSchönknecht的PHP类将其上传到S3。 它可以从这个 git克隆。 在应用一些对象操作将其推送到S3存储桶之前,您可以使用文件/图像进行处理。 另外,如果您需要在将图像上传到存储区之前处理图像,则可以使用此存储库处理图像,然后将其上载到所需的AWS S3存储桶 You can use Donovan Schönknecht's PHP class to upload it to S3. It can be cloned from this git. You can

...

您可以使用Amazon API创建已签名的上传URL 。 这将阻止未注册的用户将内容上传到您的存储桶。 您的服务器创建签名URL并将其返回给客户端。 然后,客户端可以直接上传到S3,而不会使服务器陷入困境。 您可能还希望使用Amazon通知服务在上载完成时通知服务器,以便您可以使用新保存的上载的位置更新数据库。 看看这个问题怎么样 使用签名网址将文件从angularjs直接上传到amazon s3 You can create signed upload URLs with the Amazon

...

在s3中检查您的存储桶策略。 您需要授予API用户权限以允许上传。 Check your bucket policy in s3. You need to grant permissions to the API user to allow uploads.

如果它仅发生在部署后的第一张图像上,我会怀疑您的应用程序仍在加载(或至少有一些工作人员在使用),从而导致CPU使用率过高并放慢上载过程,这可能会导致超时并损坏映像与此同时。 我假设Engine Yard只会在第一次请求时重新载入您的应用程序,这可能是原因。 您应该尝试在部署完成后“蜷缩”您的应用程序,然后等待几分钟以查看是否有帮助。 EC2上的小型实例只有一个核心,并且在很多员工重新启动时会变得非常缓慢。 There appears to have been an issue with gzip

...

最简单的方法是使用S3 POST上传API。 如果您需要进度条, 可以在HTML5浏览器上轻松完成 ; 如果您需要支持旧浏览器,则可能需要一个Flash上传器。 The simplest way to do this is with the S3 POST upload API. If you need a progress bar, you can do that easily on HTML5 browsers; if you need to support older browsers yo

...

@ michael-sqlbot是对的。 只是做帖子,每个文件的限制为5GB。 如果您在上传之前预先分配每个请求,则可以执行分段上传,这意味着您需要管理文件的拆分并要求服务器在上载之前对每个请求进行签名。 我最后关注@ fl0cke建议并使用https://github.com/TTLabs/EvaporateJS来管理上传。 它完成所有文件管理,您只需实现服务器端功能即可为每个文件签署请求。 @michael-sqlbot was right. Just doing posts there's

...

问题不在于CORS配置,而是与用于存储桶的策略有关。 资源字符串是 arn:was:s3:::bucketName

并且需要 arn:was:s3:::bucketName/*

像往常一样,魔鬼在细节中...... The issue was not with the CORS configuration, but with the policy used for the bucket. The resource string was arn:was:s3:::bucketName

and

...

我用这篇文章解决了这个问题:解决了:使用这篇文章: http : //www.designedbyaturtle.co.uk/2013/direct-upload-to-s3-with-a-little-help-from-jquery/ I solved the problem using this post: solved: using this post : http://www.designedbyaturtle.co.uk/2013/direct-upload-to-s3-with-a-

...

找到了!!! 在upload_helper> S3Uploader> initialze中为你的'expiration:'添加一个时区,如下所示: expiration: 10.hours.from_now.utc,

这对我来说是神奇的 祝你好运 Found it!!! In the upload_helper > S3Uploader > initialze add a timezone to your 'expiration:' like this: expiration:

...

上传发生在客户端这一事实并没有使这个问题比服务器端更糟或更差。 您仍然需要一种处理错误并使数据库保持同步的机制。 如何处理这取决于您的具体应用需求。 @ceejayoz提到了一种拥有临时存储桶的方法。 我不想担心上传,直到完成,使用Lambda作业处理数据更新。 如果你真的想要,你也可以使用列表操作进行同步过程,但我认为这通常是不必要的。 The fact that the upload is occurring client side doesn't make this problem any

...

 类似资料: