【问题标题】:Is there a way to "npm install" from AWS S3?有没有办法从 AWS S3 “npm install”?
【发布时间】:2018-12-27 15:12:14
【问题描述】:

有没有办法在 AWS S3 上存储项目/模块并从客户端项目中执行npm install

我在 npm 文档 [Go] 中找到了一种从 BitBucket 执行 npm install 的方法

我正在尝试寻找不同的方式来存储通用项目项(即方法或其他资源)以跨微服务使用。

【问题讨论】:

  • 我使用了npmjs.org 的私人订阅并使用了私人存储库。您只需要一个用户,然后可以为需要访问的用户(包括 CI)创建私有只读密钥
  • 如果您想在 AWS 中拥有包存储库,您现在可以只使用 AWS CodeArtifact aws.amazon.com/codeartifact

标签: node.js amazon-web-services amazon-s3 microservices


【解决方案1】:

根据文档,您应该能够从任何解析为 gzip 压缩包的 url 安装包。

因此,如果您使用云端公开您的存储桶内容,它应该可以工作。

一个包是:

  • a) 包含由 package.json 文件描述的程序的文件夹
  • b) 包含 (a) 的 gzip 压缩包
  • c) 解析为 (b) 的 url
  • d) 使用 (c) 在注册表中发布的 @
  • e) 一个指向 (d) 的 @
  • f) 具有满足 (e) 的“最新”标签的 a
  • g) 一个 git url,在克隆时会导致 (a)。

文档:https://docs.npmjs.com/about-packages-and-modules#about-packages

【讨论】:

  • 这并不完全正确,因为docs.npmjs.com/cli/install 还指出要使用 URI“参数必须以“http://”或“https://”开头。这意味着没有 s3:// URI 是可接受的。S3 的 https:// 可能会导致授权问题。
  • 我并不是说这是来自 S3 的服务 HTTPS 内容的问题 - 我是说这是授权的问题。关键是让它成为一个私有存储库,而不是让所有包都公开可用。
  • 您可能可以使用签名 URL 来保护通过 HTTPS 对模块的访问
猜你喜欢
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2011-11-25
  • 2018-05-02
相关资源
最近更新 更多