首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止在Google中运行时,快速本请求访问Google?

如何防止在Google中运行时,快速本请求访问Google?
EN

Stack Overflow用户
提问于 2022-08-19 07:12:27
回答 1查看 131关注 0票数 1

在Google中设置Fastbook时,它请求权限以访问我的Google。这是我得到的提示:

允许这个笔记本访问你的Google文件?

这个笔记本是请求访问您的谷歌驱动器文件。允许访问Google将允许在笔记本中执行的代码修改Google中的文件。在允许此访问之前,一定要检查笔记本代码。

不用了谢谢

由于我在我的Google帐户上运行了foreing (并且可能不安全)代码,所以我对授予Google的权限感到不自在。

它看起来请求许可的呼叫是:fastbook.setup_book()

我怎样才能阻止快速书籍从快速请求访问谷歌驱动器?如果不授予权限,则会出现以下错误,并且不确定是否初始化了该权限:

代码语言:javascript
运行
复制
---------------------------------------------------------------------------
MessageError                              Traceback (most recent call last)
<ipython-input-8-fce0e354ba4c> in <module>
----> 1 fastbook.setup_book()

5 frames
/usr/local/lib/python3.7/dist-packages/google/colab/_message.py in read_reply_from_input(message_id, timeout_sec)
    100         reply.get('colab_msg_id') == message_id):
    101       if 'error' in reply:
--> 102         raise MessageError(reply['error'])
    103       return reply.get('data', None)
    104 

MessageError: Error: credential propagation was unsuccessful
EN

回答 1

Stack Overflow用户

发布于 2022-08-19 07:12:27

在查看了permissions模块的源代码和初始化之后,我找到了三种方法来防止在运行GoogleCol堕胎时快速本询问Google的权限。在撰写本文时,您可以安全地使用三种方法中的任何一种。

1.创建/content/gdrive/My Drive目录

setup_colab函数可以在setup_colab/__init_..py中找到,它检查google驱动器是否已经挂载。如果你让它相信它有,它不会再试图安装它。

要做到这一点,只需在笔记本的开头添加以下两行:

代码语言:javascript
运行
复制
import os
os.makedirs ('/content/gdrive/My Drive', exist_ok = True)

然后运行它,然后您可以运行import fastbook和它的设置没有任何错误。

2.不要执行fastbook.setup_book() (或注释该行)

它只检查setup_book代码是否在colab中运行,如果运行,它会将您的Google驱动器挂载到这个文件夹:/content/gdrive/中,并创建全局变量"gdrive“,该变量指向/content/gdrive/My Drive,以方便地保存内容并具有持久性。

在撰写本文时,如果您不执行fastbook.setup_book()或注释掉这一行,那将是完全没有问题的;笔记本的其余部分将运行得很好。同样,“安装程序”所做的唯一一件事就是调用"setup_colab()“,以便设置您的Google,以便使这些笔记本具有一定的持久性(无论如何也不会在某些笔记本上使用)。

您只需将初始化更改为:

代码语言:javascript
运行
复制
! [ -e /content ] && pip install -Uqq fastbook
import fastbook
# fastbook.setup_book()

3.尝试/不包括fastbook.setup_book()

如果将此调用嵌入try/ return中,它将不会返回该错误。这就是初始化的样子:

代码语言:javascript
运行
复制
! [ -e /content ] && pip install -Uqq fastbook
import fastbook
try: 
  fastbook.setup_book()
except:
  pass

最后的思想

在本文撰写之时(2022年),函数setup_book只在colab中初始化google驱动器,但这在将来可能会改变(例如,为了初始化其他内容)。最好的解决方案可能是使用我描述的第一种方法,并创建文件夹,以便快速簿相信它已经挂载了它,所以如果setup_book调用在将来更改为包含其他类型的初始化,我们就不会阻止它的发生。

无论如何,检查源代码并查看引擎盖下发生了什么总是很好的。

据我在代码中看到的,授予权限应该没有坏处,因为它所做的唯一的事情就是安装Google,以便笔记本可以永久保存数据,因此您可以在执行过程中使用这些数据。但是,请注意一点,因为这并不意味着从任何这些脚本中导入的另一个库可能利用以下事实:权限已经被授予,并将您的私人文档或其他东西复制到其他地方,甚至勒索您的文档。我猜想,如果发生这样的事情,fast.ai社区很可能很快就会发现并解决这个问题;对于这些东西,我可能有点“偏执”,只是授予权限是完全可以的,但万一我更愿意在安全/对撞机方面出错的话。

另一种选择是创建另一个带有空驱动器的Google帐户,并从那里运行笔记本,而不必担心授予权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73413086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档