web-dev-qa-db-ja.com

Angular 8からAWS S3にファイルをアップロードする方法

Angular 8 ProjectからS3にファイルをアップロードしているときにエラーが発生しました。以下のチュートリアルに従って、必要なことを行います

https://medium.com/ramsatt/angular-7-upload-file-to-Amazon-s3-bucket-ba27022bad54

しかし、サービスファイルでS3ライブラリを使用できません。

Error Screenshot

下の行は私が思うエラーを生成していますが、どこに不足しているのかはまだわかりません

'aws-sdk/global'から*をAWSとしてインポートします。

'aws-sdk/clients/s3'から*をS3としてインポートします。

それを取り除くために私を助けることができる誰かがいますか?.

6
Rushabh Madhu

最後に私は以下の手順で問題を解決しました:

ステップ1 :

npm install --save-dev @ types/node

ステップ2 :

リファレンスを使用: https://github.com/aws/aws-sdk-js/issues/1271 (ステップ2)

ステップ3:

リファレンスを使用: https://github.com/bevacqua/dragula/issues/602 (ステップ3)

public uploadFileToAws(file, folderName, newFileName) {

    var aws_cognito_identity_pool_id = environment.pool_id;
    var aws_cognito_region = environment.aws_cognito_region;
    var aws_project_region = environment.aws_project_region;
    AWS.config.region = aws_project_region;
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
      IdentityPoolId: aws_cognito_identity_pool_id
    }, {
        region: aws_cognito_region
      });
    AWS.config.update({ customUserAgent: 'MobileHub v0.1' });

    const s3 = new S3({
      apiVersion: '2006-03-01',
      params: { Bucket: environment.bucket }
    });

    s3.upload({
        Key: folderName+'/'+newFileName,
        Bucket: environment.bucket,
        Body: file,
        ACL: 'private'
      },function (err, data) {
        this.fileuploading = false;
        if (err) {
          console.log(err, 'there was an error uploading your file');
        } else {
          console.log(data.Key+ ' uploaded successfully');          
        }        
        return true;
      });
  }
1
Rushabh Madhu

一部のノード環境タイプが必要なため、TypeScriptは不平を言っています。これは今のところ制限であり、将来これらのインターフェースをスタブすることで回避できる可能性があります。

環境タイピングをインストールして、問題を回避できるかどうかを確認してみませんか?

npm install --save-dev @types/node
0
AWS PS