有没有办法从 AWS S3 “npm install”?
Posted
技术标签:
【中文标题】有没有办法从 AWS S3 “npm install”?【英文标题】:Is there a way to "npm install" from AWS S3? 【发布时间】: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。 【参考方案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:// 可能会导致授权问题。
@RafałWrzeszcz 见How do I use CloudFront to serve HTTPS requests for my Amazon S3 bucket?
我并不是说这是来自 S3 的服务 HTTPS 内容的问题 - 我是说这是授权的问题。关键是让它成为一个私有存储库,而不是让所有包都公开可用。
您可能可以使用签名 URL 来保护通过 HTTPS 对模块的访问以上是关于有没有办法从 AWS S3 “npm install”?的主要内容,如果未能解决你的问题,请参考以下文章
在运行 AWS Glue ETL 作业并命名输出文件名时,有没有办法从 S3 存储桶中读取文件名。 pyspark 是不是提供了一种方法来做到这一点?
AWS Glue,加载到框架之前的数据过滤,命名 s3 对象