Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AWS Cognito使用ng文件上载进行上载?_Javascript_Angularjs_Amazon S3_Amazon Cognito_Ng File Upload - Fatal编程技术网

Javascript 如何使用AWS Cognito使用ng文件上载进行上载?

Javascript 如何使用AWS Cognito使用ng文件上载进行上载?,javascript,angularjs,amazon-s3,amazon-cognito,ng-file-upload,Javascript,Angularjs,Amazon S3,Amazon Cognito,Ng File Upload,我已经为Angular应用程序安装了AWS Cognito,我正在尝试将s3.putObject的一些方法挂接到ng文件上传upload服务中 我想使用ng file upload的upload.upload()方法,但我不知道如何使用现有的与Cognito的身份验证连接。其想法是使用ng file upload的拖放,然后上传将使用现有的Cognoto连接上传到s3。我该怎么做?我之所以要使用ng file upload的upload.upload()方法,是为了帮助保留一些功能,如进度条(如

我已经为Angular应用程序安装了AWS Cognito,我正在尝试将
s3.putObject
的一些方法挂接到ng文件上传
upload
服务中


我想使用ng file upload的
upload.upload()
方法,但我不知道如何使用现有的与Cognito的身份验证连接。其想法是使用ng file upload的拖放,然后上传将使用现有的Cognoto连接上传到s3。我该怎么做?我之所以要使用ng file upload的
upload.upload()
方法,是为了帮助保留一些功能,如进度条(如果不正确,请纠正我)。

我假设您正试图在单页应用程序中直接从客户端上传到S3 bucket。如果是这样,您可以先对S3URL进行预签名,然后在ng文件上载中尝试使用它。预签名的URL允许您向可能没有直接访问权的其他用户授予一次性访问权,以执行操作。预签名生成使用您的凭据签名的有效URL,任何用户都可以访问该URL。默认情况下,SDK生成的URL在15分钟后过期

要生成一个简单的预签名URL,允许任何用户将对象放入您自己的bucket中,您可以使用以下对getSignedUrl()的调用:

有关获取预签名URL的更多信息,请参阅此wiki并查阅ng文件上载文档

//Initialize the SDK with Cognito Credentials
var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: 'myKey'};
var url = s3.getSignedUrl('putObject', params);
console.log("Use this url in ng-file-upload", url);