Angular.js和Amazon S3 - 如何上传文件?

6

我有一个使用Angular.js编写的应用程序。实际上,我对我的旧网站进行了更新,并将其改为了Angular。

在旧版本中,我使用Uploadfy jquery组件将我的上传内容上传到Amazon S3。但是现在,使用Angular时,我无法使用它。

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


发布你的旧代码。无论如何,你应该能够使用Uploadfy,因为Angular被设计成通用和适应性强的。例如,你可以创建一个指令来包装Uploadify。 - Caio Cunha
3个回答

7

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

有效的参数值是通过调用AWS 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

嗨,关于政策和签名生成的问题。我在哪里可以找到这个?谢谢。 - Wondering Coder

5

@danial 是这个库的创建者。 - demisx

3
如果你想在上传后处理文件并将其移动到其他位置,可以使用“公共”IAM帐户和AWS JS SDK API密钥来完成此操作。例如,处理和存储已上传的文件。
使用Angular、AWS S3 JS SDK、CORS和IAM帐户。不过需要进行一些设置以防止滥用。
我在这里记录了设置过程:http://www.cheynewallace.com/uploading-to-s3-with-angularjs/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接