簡體   English   中英

如何通過AWS Cognito使用ng-file-upload進行上傳?

[英]How to upload using ng-file-upload with AWS Cognito?

我已為Angular應用程序安裝了AWS Cognito,並且嘗試將s3.putObject掛接到ng-file-upload Upload服務中。

我想使用ng-file-upload的Upload.upload()方法,但是我不知道如何在Cognito中使用現有的經過身份驗證的連接。 這個想法是使用ng-file-upload的拖放操作,然后上傳將使用現有的Cognito連接上傳到s3。 我怎樣才能做到這一點? 我之所以要使用ng-file-upload的Upload.upload()方法,是為了幫助保留進度條之類的某些功能(如果不正確,請更正我)。

我假設您正在嘗試直接從您的客戶端在Single Page App中上載到S3存儲桶。 如果是這樣,您可以先對S3 URL進行簽名,然后嘗試在ng-file-upload中使用它。 通過預簽名URL,您可以一次性授予其他可能無權直接執行操作的用戶訪問權限。 預簽名會生成一個使用您的憑據簽名的有效URL,任何用戶都可以訪問。 默認情況下,SDK生成的URL將在15分鍾后失效。

要生成允許任何用戶將對象放入您自己的存儲桶中的簡單預簽名URL,可以使用以下調用getSignedUrl():

//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);

有關獲取預簽名URL的更多信息,請參閱此Wiki http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html#Amazon_S3__Getting_a_pre-signed_URL_for_a_PUT_operation_with_a_specific_payload並查閱ng文件上傳文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM