有没有一种方法可以从AWS S3中进行“npm install”安装?

7
有没有一种方法可以在AWS S3上存储项目/模块并从客户端项目执行npm install
我已经在npm文档中找到了一种从BitBucket执行npm install的方法[前往] 我正在尝试寻找不同的方法来存储常见的项目项(例如方法或其他资源),以便在微服务之间使用。

我使用了 http://npmjs.org 的私人订阅和私人仓库。您只需要一个用户,然后可以为需要访问权限的用户(包括 CI)创建私有只读密钥。 - cubabit
如果您想在AWS中拥有软件包存储库,现在可以直接使用AWS CodeArtifact https://aws.amazon.com/codeartifact/。 - nyxz
1个回答

6
根据文档,您应该能够从任何解析为gzipped tarball的url安装软件包。因此,如果您使用cloudfront公开您的bucket内容,则可以正常工作。
一个软件包是:
a) 包含由package.json文件描述的程序的文件夹 b) 包含(a)的gzipped tarball c) 解析为(b)的url d) 使用(c)发布到注册表中的@ e) 指向(d)的@ f) 具有满足(e)的“latest”标签的@ g) git url,克隆时会生成(a)。
文档:https://docs.npmjs.com/about-packages-and-modules#about-packages

4
这并不完全正确,因为https://docs.npmjs.com/cli/install也指出要使用URI,“参数必须以“http://”或“https://”开头。”这意味着不接受`s3://`的URI。对于S3,使用https://可能会导致授权方面的问题。 - Rafał Wrzeszcz
6
我并不是说从S3服务获取HTTPS内容有问题,我是在说授权出现了问题。关键是要将这个作为私有存储库,而不是将所有包都公开可用。 - Rafał Wrzeszcz
你可以通过使用签名URL来保护通过HTTPS访问模块的安全性。 - JC Olivares
谢谢,它确实有效。我已经创建了一个名为my-package@1.0.0.tar.gz的文件,并将其上传到S3。然后我在package.json中提供了S3的HTTPS URL。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接