我在 Angular.js 中有一个应用程序。事实上,我在旧网站上进行了更新,为 Angular 进行了更改。
在旧版本中,我使用 Uploadfy jquery 组件在 Amazon S3 中进行上传。但是现在,有了 Angular,我就不能使用它了。
我想使用指令“ngUpload”。但我不知道该怎么做。任何人都可以帮助我吗?
我在 Angular.js 中有一个应用程序。事实上,我在旧网站上进行了更新,为 Angular 进行了更改。
在旧版本中,我使用 Uploadfy jquery 组件在 Amazon S3 中进行上传。但是现在,有了 Angular,我就不能使用它了。
我想使用指令“ngUpload”。但我不知道该怎么做。任何人都可以帮助我吗?
如果您在 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 的示例代码。
您可以使用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
如果您想在上传后处理文件并将它们移动到其他位置,您可以使用 AWS JS SDK 的“公共”IAM 账户和 API 密钥来执行此操作。例如,处理和存储上传的文件。
使用 Angular、AWS S3 JS SDK、CORS 和 IAM 账户。需要进行一些设置才能将其锁定,因此它不会被滥用。
我在这里记录了设置过程:http: //www.cheynewallace.com/uploading-to-s3-with-angularjs/