Ошибка при попытке загрузить файл с S3
Я пытаюсь скачать zip из корзины S3, используя следующий код:
AWS.config.update({
region: AWSRegion,
credentials: new AWS.CognitoIdentityCredentials({
IdentityPoolId: AWSIdentityPoolId
})
});
const s3 = new AWS.S3({
apiVersion: '2006-03-01'
});
let file = window.require('fs').createWriteStream(path.join(app.getAppPath(), './downloads/'));
let params = {
Bucket: AWSS3BucketName,
Key: 'build.zip'
}
s3.getObject(params).createReadStream().pipe(file);
Но когда код достигает createReadStream()
вызов функции выдает ошибку: ERROR TypeError: Cannot read property 'Stream' of undefined
которая вызывается следующей строкой кода в пакете aws-sdk:
stream = new streams.Stream();
(request.js: 574)
Видимо объект AWS.util.stream
(request.js:566) всегда не определено.
Я уже давно сталкиваюсь с этой проблемой и нигде не могу найти решения.
Кто-нибудь знает, что я здесь делаю не так?
заранее спасибо.
PS: это мой package.json
{
"name": "angular-electron",
"version": "3.0.1",
"description": "Angular 5 with Electron (Typescript + SASS + Hot Reload)",
"homepage": "https://github.com/maximegris/angular-electron",
"author": {
"name": "Maxime GRIS",
"email": "maxime.gris@gmail.com"
},
"keywords": [
"angular",
"angular 5",
"electron",
"typescript",
"sass"
],
"main": "main.js",
"private": true,
"scripts": {
"postinstall": "npx electron-builder install-app-deps",
"ng": "ng",
"start": "node hooks/environments/set_profile.js && npm-run-all -p ng:serve electron:serve",
"build": "node hooks/environments/set_profile.js && ng build && npm run electron:tsc",
"build:prod": "node hooks/environments/set_profile.js && ng build --prod && npm run electron:tsc",
"ng:serve": "ng serve -o",
"electron:tsc": "tsc main.ts",
"electron:serve": "wait-on http-get://localhost:4200/ && npm run electron:tsc && electron . --serve",
"electron:local": "npm run build:prod && electron .",
"electron:linux": "npm run build:prod && npx electron-builder build --linux",
"electron:windows": "npm run build:prod && npx electron-builder build --windows",
"electron:mac": "npm run build:prod && npx electron-builder build --mac",
"test": "karma start ./karma.conf.js",
"pree2e:build": "webdriver-manager update --gecko false && npm run ng:serve",
"pree2e:protractor": "wait-on http-get://localhost:4200/ && protractor ./protractor.conf.js",
"e2e": "npm-run-all -p pree2e:build pree2e:protractor"
},
"devDependencies": {
"@angular/cli": "1.7.1",
"@angular/common": "5.2.5",
"@angular/compiler": "5.2.5",
"@angular/compiler-cli": "5.2.5",
"@angular/core": "5.2.5",
"@angular/forms": "5.2.5",
"@angular/http": "5.2.5",
"@angular/language-service": "5.2.5",
"@angular/platform-browser": "5.2.5",
"@angular/platform-browser-dynamic": "5.2.5",
"@angular/router": "5.2.5",
"@ngx-translate/core": "9.1.1",
"@ngx-translate/http-loader": "2.0.1",
"@types/core-js": "0.9.36",
"@types/jasmine": "2.8.3",
"@types/jasminewd2": "2.0.2",
"@types/node": "^7.0.7",
"codelyzer": "4.0.1",
"copyfiles": "1.2.0",
"core-js": "2.4.1",
"cross-env": "5.0.5",
"dotenv": "5.0.0",
"electron": "1.8.2",
"electron-builder": "20.0.5",
"electron-reload": "1.2.2",
"enhanced-resolve": "3.3.0",
"fs-extra": "5.0.0",
"jasmine-core": "2.99.1",
"jasmine-spec-reporter": "4.2.1",
"karma": "2.0.0",
"karma-chrome-launcher": "2.2.0",
"karma-coverage-istanbul-reporter": "1.4.1",
"karma-jasmine": "1.1.1",
"karma-jasmine-html-reporter": "0.2.2",
"npm-run-all": "4.1.2",
"npx": "9.7.1",
"protractor": "5.3.0",
"replace": "0.3.0",
"rxjs": "5.5.6",
"ts-node": "4.1.0",
"tslint": "5.9.1",
"typescript": "2.6.2",
"wait-on": "^2.1.0",
"webdriver-manager": "12.0.6",
"zone.js": "0.8.19"
},
"dependencies": {
"@ng-bootstrap/ng-bootstrap": "^1.0.1",
"angular-font-awesome": "^3.1.2",
"aws-sdk": "^2.211.0",
"font-awesome": "^4.7.0"
}
}