我试图使用电子更新器和AWS S3桶实现我的电子React应用程序的自动更新。但得到错误:
⨯ NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
github.com/develar/app-builder/pkg/publisher.upload
Y:/Documents/app-builder/pkg/publisher/s3.go:169
github.com/develar/app-builder/pkg/publisher.ConfigurePublishToS3Command.func1
Y:/Documents/app-builder/pkg/publisher/s3.go:57
github.com/alecthomas/kingpin.(*actionMixin).applyActions
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
C:/Users/develar/go/pkg/mod/github.com/alecthomas/k[email protected]+incompatible/app.go:222
main.main
Y:/Documents/app-builder/main.go:90
runtime.main
c:/go/src/runtime/proc.go:203
runtime.goexit
c:/go/src/runtime/asm_amd64.s:1373
⨯ NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
github.com/develar/app-builder/pkg/publisher.upload
Y:/Documents/app-builder/pkg/publisher/s3.go:169
github.com/develar/app-builder/pkg/publisher.ConfigurePublishToS3Command.func1
Y:/Documents/app-builder/pkg/publisher/s3.go:57
github.com/alecthomas/kingpin.(*actionMixin).applyActions
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
C:/Users/develar/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:222
main.main
Y:/Documents/app-builder/main.go:90
runtime.main
c:/go/src/runtime/proc.go:203
runtime.goexit
c:/go/src/runtime/asm_amd64.s:1373
⨯ Cannot cleanup:
Error #1 --------------------------------------------------------------------------------
Error: D:\directoryofmyapp\myappname\node_modules\app-builder-bin\win\x64\app-builder.exe exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
at ChildProcess.<anonymous> (D:\directoryofmyapp\myappname\node_modules\builder-util\src\util.ts:243:14)
at Object.onceWrapper (events.js:422:26)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1048:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
Error #2 --------------------------------------------------------------------------------
Error: D:\directoryofmyapp\myappname\node_modules\app-builder-bin\win\x64\app-builder.exe exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
at ChildProcess.<anonymous> (D:\directoryofmyapp\myappname\node_modules\builder-util\src\util.ts:243:14)
at Object.onceWrapper (events.js:422:26)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1048:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5) stackTrace=
字符串
这是我的包.json:
{
"name": "myappname",
"version": "0.1.0",
"private": true,
"license": "MIT",
"productName": "myappname",
"author": "Bakhrom",
"description": "myappname",
"homepage": "./",
"main": "./public/electron.js",
"build": {
"appId": "com.myappname.electron-app",
"files": [
"build/electron.js",
"build/.env",
"./~/.aws/credentials",
"~/.aws/credentials",
"./.env",
".env"
],
"directories": {
"buildResources": "./public/**/*"
},
"win": {
"icon": "./public/img/favicon.png"
},
"publish": {
"provider": "s3",
"bucket": "mybucketname",
"region": "ap-southeast-1"
}
},
"dependencies": {
"@fluentui/react": "^7.146.0",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2"
"electron-is-dev": "^1.2.0",
"electron-pos-printer": "^1.2.0",
"electron-updater": "^4.3.5",
... other packages
},
"scripts": {
"start": "react-scripts start",
"build": "node --expose-gc --max-old-space-size=1900 node_modules/react-scripts/scripts/build.js",
"test": "react-scripts test",
"dev": "concurrently \"npm start\" \"wait-on http://localhost:3000 && electron .\"",
"electron-build": "npm run build && electron-builder build",
"deploy": "npm run build && electron-builder build --win --publish always",
"postinstall": "electron-builder install-app-deps"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"concurrently": "^5.3.0",
"dotenv": "^8.2.0",
"electron": "^9.1.0",
"electron-builder": "^22.9.1",
"electron-rebuild": "^2.3.2",
"wait-on": "^5.2.1"
}
}
型
我正在运行下面的命令:
"deploy": "npm run build && electron-builder build --win --publish always"
型
存储桶是公开的,我不知道这是怎么回事?我也在环境变量和~/.aws/credentials文件中提到了aws_access_key_id和aws_secret_access_key。但是没有结果。
3条答案
按热度按时间b1zrtrql1#
根据官方文档,你需要有这样的S3Options
需要AWS凭据,请参阅获取凭据。定义
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
环境变量。或在~/.aws/credentials
中。字符串
您可以将机密导出到Windows环境中:
型
除非您愿意,否则您不必将存储桶设置为
Public
。请确保您使用的User's
凭据至少具有以下权限才能访问存储桶:型
顺便说明一下为什么要捆绑凭据文件
型
jucafojl2#
仔细检查~/.aws/credential文件的格式。
例如,在AWS SDK中,JavaScript可以正确地使用JavaScript和JavaScript参数:
字符串
但在AWS SDK中,Go仅能正确运行以下参数:
型
Electron-builder在部署中使用了AWS SDK for Go。
von4xj4u3#
如果你正在执行
aws sso login --profile abc
并遇到这个错误,你可以简单地在变量中使用配置文件名称,terraform将使用它。字符串