部署权限如何与远程存储库关联?

JFrog支持
2023-01-22十一10

当用户试图解析Artifactory远程缓存存储库中不存在的文件时,Artifactory将尝试下载该文件并首先将其保存/部署到远程缓存中,只有当用户对感兴趣的存储库具有deploy权限时才能执行此操作。只有在文件被缓存之后,Artifactory才会将工件传输回请求实体/客户端(Maven等)。如果用户没有Deploy权限,则此操作将失败,并且不会缓存该文件。

请注意,向给定用户授予远程存储库上的Deploy权限并不意味着用户可以部署工件直接放到存储库缓存中。远程缓存上的Deploy权限仅用于缓存来自远程存储库的构件。

您可以阅读有关管理权限的更多信息在这里


为了缓存工件而必须向用户授予Deploy权限背后的想法是,为您提供了控制哪些用户可以这样做的粒度添加文件到您的存储库/服务器,而不是仅仅读取服务器上的现有文件。

即使在远程存储库上下文中,“部署”一词实际上也具有“添加”或“上传”新文件到服务器的相同目的。与常规的上传过程(用户将文件上传到本地存储库)不同,使用远程解析时,不能将远程服务器标识为上传实体,因此将操作与请求远程工件的用户关联起来非常有意义。

一个相当常见的场景是,服务器管理员允许某个用户读取现有的存储库内容,但不向其中添加任何新内容(例如新的工件版本),在这种情况下,相应的用户将具有读取权限,但没有部署权限。如果没有权限模型中的这种粒度,这个场景就不可能实现。

设想这样一个场景:您授予了一个“不负责任的用户”读权限,该用户在一个非常大的远程存储库上调用递归下载操作。这种情况可能导致服务器上严重的性能和资源问题(磁盘空间、CPU等)。在几乎所有用例中,不应该允许每个用户都进行这样的操作。