部署权限与远程存储库有什么关系?
当用户试图解析一个在Artifactory远程缓存存储库中不存在的文件时,Artifactory将首先尝试下载这个文件并将其保存/部署到远程缓存中,只有当用户对感兴趣的存储库具有deploy权限时,它才能这样做。只有在文件被缓存之后,Artifactory才会将工件传输回请求的实体/客户端(Maven,等等……)。如果用户没有“部署”权限,该操作将失败,文件将不会被缓存。
请注意,在远程存储库上授予给定用户Deploy权限这是否意味着用户可以部署工件直接进入存储库缓存。远程缓存上的Deploy权限仅用于缓存来自远程存储库的构件。
您可以阅读更多关于管理权限的信息在这里.
为了缓存工件,必须向用户授予Deploy权限,这背后的想法是为您提供控制哪些用户可以使用的粒度添加将文件传输到存储库/服务器,而不是仅仅读取服务器上的现有文件。
即使在远程存储库上下文中,单词“Deploy”实际上也具有向服务器“添加”或“上传”新文件的相同目的。与常规上传过程(用户将文件上传到本地存储库)不同,使用远程解析时,远程服务器不能被标识为上传实体,因此将操作与请求远程工件的用户关联起来非常有意义。
一个相当常见的场景是,服务器管理员允许某个用户读取现有的存储库内容,但不向其添加任何新内容(例如新的工件版本),在这种情况下,相应的用户将具有读取权限,但没有部署权限。如果没有权限模型中的这种粒度,这个场景是不可能实现的。
想象这样一个场景:一个“不负责任的用户”,您授予他读权限,他在一个非常大的远程存储库上调用递归下载操作。这样的场景会导致严重的服务器性能和资源问题(磁盘空间、CPU等)。在几乎所有用例中,不应该允许每个用户都执行这样的操作。
