5

我在 Angular.js 中有一个应用程序。事实上,我在旧网站上进行了更新,为 Angular 进行了更改。

在旧版本中,我使用 Uploadfy jquery 组件在 Amazon S3 中进行上传。但是现在,有了 Angular,我就不能使用它了。

我想使用指令“ngUpload”。但我不知道该怎么做。任何人都可以帮助我吗?

4

3 回答 3

7

如果您在 POST 数据中包含有效的 S3 参数,则可以从 HTML 表单直接上传到 S3 存储桶。这些被称为预授权的 HTML POST 表单。

有效参数值是通过对 AWS API 的 API 调用在您自己的托管服务器上生成的。然后这些值将作为隐藏输入字段添加到您的上传表单中。

以下是它们在您的表单中的样子:

  <input type="hidden" name="AWSAccessKeyId" value="YOUR_AWS_ACCESS_KEY"> 
  <input type="hidden" name="acl" value="private"> 
  <input type="hidden" name="success_action_redirect" value="http://yourdomain/">
  <input type="hidden" name="policy" value="YOUR_POLICY_DOCUMENT_BASE64_ENCODED">
  <input type="hidden" name="signature" value="YOUR_CALCULATED_SIGNATURE">

Amazon 提供了 Java、Python 和 Ruby 的示例代码。

http://aws.amazon.com/articles/1434

于 2013-08-08T14:16:37.250 回答
5

您可以使用angular-file-upload一个轻量级的 Angular 指令,它支持文件进度和文件删除。

您可以在此处关注 Amazon S3 问题,其中包含如何将所有这些数据与文件上传一起发送的示例代码: https ://github.com/danialfarid/angular-file-upload/issues/23

S3 上传应该适用于以上版本 1.1.1。

另一个相关问题:https ://github.com/danialfarid/angular-file-upload/issues/23

于 2013-10-28T22:38:59.743 回答
2

如果您想在上传后处理文件并将它们移动到其他位置,您可以使用 AWS JS SDK 的“公共”IAM 账户和 API 密钥来执行此操作。例如,处理和存储上传的文件。

使用 Angular、AWS S3 JS SDK、CORS 和 IAM 账户。需要进行一些设置才能将其锁定,因此它不会被滥用。

我在这里记录了设置过程:http: //www.cheynewallace.com/uploading-to-s3-with-angularjs/

于 2014-08-15T20:30:10.137 回答