实际上没有关于如何将亚马逊s3与电子助剂一起使用的文件 - 我很丢失。
答案 0 :(得分:3)
是的,我同意你的观点,我最近去过那里...
即使我迟到了,我也会尽我所能告诉别人!
就我而言,我正在使用电子构建器来打包我的电子/测角器应用程序。
要使用电子生成器,建议您在项目根目录创建一个名为electron-builder.json
的文件。
那是我的内容:
{
"productName": "project-name",
"appId": "org.project.project-name",
"artifactName": "${productName}-setup-${version}.${ext}", // this will be the output artifact name
"directories": {
"output": "builds/" // The output directory...
},
"files": [ //included/excluded files
"dist/",
"node_modules/",
"package.json",
"**/*",
"!**/*.ts",
"!*.code-workspace",
"!package-lock.json",
"!src/",
"!e2e/",
"!hooks/",
"!angular.json",
"!_config.yml",
"!karma.conf.js",
"!tsconfig.json",
"!tslint.json"
],
"publish" : {
"provider": "generic",
"url": "https://project-release.s3.amazonaws.com",
"path": "bucket-path"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true
},
"mac": {
"icon": "src/favicon.ico"
},
"win": {
"icon": "src/favicon.ico"
},
"linux": {
"icon": "src/favicon.png"
}
}
如您所见,如果要使用电子购买程序自动将应用程序发布到s3,则需要添加发布配置。我不喜欢的是,所有工件和文件都位于同一文件夹中。就我而言,就像您在下面的 package.json 中看到的那样,我决定使用electron-builder build -p never
手动对其进行打包。这基本上是告诉您永远不要发布它,但是我需要它,因为如果没有它,它将不会生成Latest.yml文件。我正在使用Gitlab-ci生成伪像,然后使用脚本将其发布到s3,但是如果需要,可以使用-p always
选项。
电子制造商需要latest.yml文件,因为这是他想知道s3上的人工制品是否是最新的。
latest.yml内容示例:
version: 1.0.1
files:
- url: project-setup-1.0.0.exe
sha512: blablablablablablablabla==
size: 72014605
path: project-setup-1.0.0.exe
sha512: blablablablablabla==
releaseDate: '2019-03-10T22:18:19.735Z'
值得一提的另一件事是,电子构建器将尝试在您在 electron-builder.json发布配置中提供的URL上获取内容,如下所示:
https://project-release.s3.amazonaws.com/latest.yml
https://project-release.s3.amazonaws.com/project-setup-1.0.0.exe
这是默认的上载内容
为此,您需要公开s3存储桶,以便每个使用该应用程序的人都可以获取最新版本...
这是政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name/*",
"arn:aws:s3:::your-bucket-name"
]
}
]
}
替换您的存储桶名称
第二,要打包应用程序,我在 package.json 中添加了一个脚本。 (“ build:prod”仅用于角度)
"scripts": {
"build:prod": "npm run build -- -c production",
"package:linux": "npm run build:prod && electron-builder build --linux -p never",
"package:windows": "npm run build:prod && electron-builder build --windows -p never",
"package:mac": "npm run build:prod && electron-builder build --mac -p never",
},
最后,这是一篇写得很好的文章here,与gitlab-ci一起使用。
我可能忘了一些零件,问任何问题!
答案 1 :(得分:1)
以下是电子制造商
中S3 autoUpdater的文档您将配置放在package.json
构建标记内,例如:
{
"name": "ps-documentation",
"description": "Provides a design pattern for Precisão Sistemas",
"build":{
"publish": {
"provider": "s3",
"bucket": "your-bucket-name"
},
}
}