我想与客户端共享使用qgis2web插件创建的网络地图,但是我不想公开数据。有什么办法可以与某人特别分享吗?我无法理解Google云端存储平台提供的信息...
答案 0 :(得分:0)
欢迎使用Stackoverflow。您确实可以将访问权限授予第三方。这是一篇很棒的文章,标题为Sharing buckets and files。为了与指定的个人共享数据,Google Cloud Storage必须知道该个人的身份。这意味着用户必须是您的G Suite域的一部分,您的Cloud Identity配置的一部分或与Google帐户的电子邮件相关联。
答案 1 :(得分:0)
来自Google文档:
您可以控制谁有权访问您的Cloud Storage存储桶和对象以及他们具有什么访问级别。
This link包含有关Google Cloud Storage访问控制选项的信息。
为了授予对GCS存储桶中某些实体的访问权限,用户可以使用Cloud IAM权限。
Here you will find detailed instructions on how to do that.
请注意:
您应该设置授予成员的最低权限 所需的访问权限。例如,如果团队成员只需要 读取存储桶中存储的对象,选择“存储对象查看器” 角色。同样,如果团队成员需要完全控制对象 存储桶(但不能控制存储桶本身),请选择存储 对象管理员。
Here you will find the Cloud IAM roles for Cloud Storage with a short description of their use.
如果您需要进一步的帮助,请告诉我。
答案 2 :(得分:0)
您可以授予任何具有Traceback:
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\core\handlers\base.py" in _get_response
145. response = self.process_exception_by_middleware(e, request)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\core\handlers\base.py" in _get_response
143. response = response.render()
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\response.py" in render
106. self.content = self.rendered_content
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\response.py" in rendered_content
83. content = template.render(context, self._request)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\backends\django.py" in render
61. return self.template.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render
171. return self._render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\loader_tags.py" in render
150. return compiled_parent._render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\loader_tags.py" in render
150. return compiled_parent._render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\loader_tags.py" in render
62. result = block.nodelist.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\defaulttags.py" in render
309. return nodelist.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\template\defaulttags.py" in render
443. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\urls\base.py" in reverse
90. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "D:\Opeodedeyi\Documents\Django\WORK IN PROGRESS\ProfilesAPI\venv\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
673. raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /account-confirm-email/MTk:1iNcyz:wyyIWJiSWJ2s9JHabdympHnzbMU/
Exception Value: Reverse for 'account_email' not found. 'account_email' is not a valid view function or pattern name.
角色的Google帐户。这里有一个潜在的问题:授予 storage.objectViewer
。
您的客户可以创建一个here(如果没有)
Google account
。顺便说一句,他可以使用任何地址电子邮件,并在上面添加密码以供Google进行身份验证。最后一部分类似于您的“设置密码”提案。
然后转到您的存储桶权限,甚至获得对象权限,然后将角色授予客户电子邮件地址。
注意:如果您的组织已激活“域限制共享”策略,则该解决方案是不可能的,除非该策略将您客户的电子邮件地址域列入了白名单,或者您的项目被列入了白名单。