【问题标题】:How to set a AWS S3 bucket feed url to Electron autoUpdater如何将 AWS S3 存储桶提要 URL 设置为 Electron autoUpdater
【发布时间】:2023-04-04 10:18:01
【问题描述】:

我可以将电子应用程序发布到 AWS S3 存储桶。但是如何使用电子自动更新器从电子应用发布的 S3 存储桶中获取更新?

【问题讨论】:

  • autoUpdater.setFeedURL() 不工作?
  • 不知道如何配置S3 bucket url
  • 查看帖子一

标签: amazon-s3 electron electron-forge


【解决方案1】:

对于使用 Squirrel(即使用 electron-forge)的人,有一些关键设置可以实现无服务器。示例是 DO 空间,但同样适用于任何 s3 兼容的存储桶存储。

锻造配置如下:

    ...
    makers: [
        {
            name: '@electron-forge/maker-squirrel',
            config: {
                setupExe: 'Setup.exe',  // Fixed path for latest setup exe
                remoteReleases: 'https://<bucket>.<region>.digitaloceanspaces.com/<folder>'
            },
        }
    ],
    make_targets: {
        win32: ['squirrel'],
    },
    publishers: [
        {
            name: '@electron-forge/publisher-s3',
            config: {
                bucket: '<bucket>',
                endpoint: 'https://<region>.digitaloceanspaces.com',
                folder: '<folder>',  // IMPORTANT: always use the same folder
                region: '<region>',
                public: true  // Necessary for serverless
            }
        }
    ],
    ...

然后我们只需将自动更新器指向存储桶:

autoUpdater.setFeedURL('https://<bucket>.<region>.digitaloceanspaces.com/<folder>')

之所以可行,是因为 Squirrel 本身甚至可以与静态文件系统或服务器一起工作,所有逻辑都被嵌入到 Update.exe 本身中。它只是查看提要 url 中的 RELEASES 文件,并确定是否需要使用列出的 nuget 包进行更新。

本质上,可变文件夹 URL 是阻止它与 autoUpdater.setFeedUrl() 开箱即用的原因,您希望所有文件(每个版本的 setup.exe、RELEASES 和 nuget)都在同一个文件夹中相同的平台/架构。

注意:如果您使用 CDN,请小心!如果 RELEASES 被缓存,那么应用在获得新版本之前不会更新。

【讨论】:

    【解决方案2】:

    默认情况下,所有文件都位于以下键:

    ${config.folder || appVersion}/${artifactName}

    配置选项记录在PublisherS3Config

    {
      name: '@electron-forge/publisher-s3',
      config: {
        bucket: 'my-bucket',
        public: true
      }
    }
    

    【讨论】:

    • 好的,我已经成功发布到s3 bucket了。网址是“https://{bucket_name}.s3.{region}/{appVersion}/{artifactName}”。现在,如何将此 url 指向电子自动更新器作为 feedurl?
    • @Kbalsamy 如果您使用的是 electron-builder 和 electron-updater,则无需手动设置
    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 2019-01-27
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多