我希望有人能帮忙。我正在使用PyDrive进行身份验证,并将一个文件上传到我的Google Drive,没有任何问题。然后,我尝试通过更新其元数据来更改同一文件的权限以允许共享。
drive = GoogleDrive(gauth)
file1 = drive.CreateFile({'title': fName, 'shareable':True,
'userPermission': [{'kind':'drive#permission', 'type': 'anyone',
'value': 'anyone','role': 'reader'}]})
file1.SetContentFile(fName)
但是,当我打印userPermission时,它似乎没有按照我的预期设置权限。
userPermission = file1['userPermission']
pprint.pprint(userPermission)
我得到:
{u'etag': u'"pvTNHKA6KkAgXTpZXMwU4Pa7ELo/gZDvZYCYVjI-u0hbut2HQwdCArU"',
u'id': u'me',
u'kind': u'drive#permission',
u'role': u'owner',
u'selfLink': u'https://www.googleapis.com/drive/v2/files/0B1aI5mMxQzh3MktDMWl1ZFdOZw0/permissions/me',
u'type': u'user'
}
我不知道为什么权限设置正确。我没有任何错误。我在userPermission中设置变量的方式有什么问题吗?谢谢你的帮助。
我不确定您是否可以在文件创建期间设置权限。另外,我不确定您是否可以修改userPermission
。但您可以使用InsertPermission
修改权限
列表。
下面是如何添加共享权限的示例。我认为下面的代码是不言自明的。
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
def get_drive_handle():
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
return drive
def main():
drive = get_drive_handle()
# create an example file
file = drive.CreateFile({
'title': 'example.txt'
,'mimeType': 'text/plain'
})
file.Upload()
# original permissions
file.FetchMetadata(fields='permissions')
print('-' * 10);
print(file['permissions'])
# insert new permission
permission = file.InsertPermission({
'type': 'anyone'
,'value': 'anyone'
,'role': 'reader'
})
# new permission created above
print('-' * 10);
print(permission)
# all permissions
file.FetchMetadata(fields='permissions')
print('-' * 10);
print(file['permissions'])
if __name__ == '__main__':
main()
示例
$ python -V
Python 3.4.3
$ python so.py
----------
[{'photoLink': 'https://lh4.googleusercontent.com/-KhPJ2d6XQY4/AAAAAAAAAAI/AAAAAAAAAAA/JCJdY_mh4PA/s64/photo.jpg', 'role': 'owner', 'domain': 'stackoverflow.com', 'kind': 'drive#permission', 'emailAddress': 'user272735@stackoverflow.com', 'name': 'user272735', 'type': 'user', 'etag': '"_x2BG98d9xdLfiLb2EI-wbdIricX8/9AA4fWf3tZymo0DbdDmcl8WsxSY"', 'id': '1720734118151459308', 'selfLink': 'https://www.googleapis.com/drive/v2/files/0ByHjqvhF6xU8XGJLOUREVUVSWE0/permissions/1720734118151459308'}]
----------
{'withLink': False, 'type': 'anyone', 'role': 'reader', 'kind': 'drive#permission', 'etag': '"_x2BEY9xkGriLb2EI-wbdIricX8/HCM4BvjWTJ3XhPBw3h0wgA7Cruo"', 'id': 'anyone', 'selfLink': 'https://www.googleapis.com/drive/v2/files/0ByHjqvhF6xU8XGJLOUREVUVSWE0/permissions/anyone'}
----------
[{'photoLink': 'https://lh4.googleusercontent.com/-KhPJ2d6XQY4/AAAAAAAAAAI/AAAAAAAAAAA/JCJdY_mh4PA/s64/photo.jpg', 'role': 'owner', 'domain': 'stackoverflow.com', 'kind': 'drive#permission', 'emailAddress': 'user272735@stackoverflow.com', 'name': 'user272735', 'type': 'user', 'etag': '"_x2BG98d9xdLfiLb2EI-wbdIricX8/9AA4fWf3tZymo0DbdDmcl8WsxSY"', 'id': '1720734118151459308', 'selfLink': 'https://www.googleapis.com/drive/v2/files/0ByHjqvhF6xU8XGJLOUREVUVSWE0/permissions/1720734118151459308'},
{'withLink': False, 'type': 'anyone', 'role': 'reader', 'kind': 'drive#permission', 'etag': '"_x2BEY9xkGriLb2EI-wbdIricX8/HCM4BvjWTJ3XhPBw3h0wgA7Cruo"', 'id': 'anyone', 'selfLink': 'https://www.googleapis.com/drive/v2/files/0ByHjqvhF6xU8XGJLOUREVUVSWE0/permissions/anyone'}]
我想添加时间字符串的文件名,我上传到谷歌驱动器使用pydrive的结束。基本上,我尝试编写以下代码,但我不知道如何适应新的文件变量: 获取类型错误:应为str、字节或os。类路径对象,而不是GoogleDriveFile
有没有其他方法使文件成为只读的?
我目前试图下载一个文件从谷歌驱动器使用PyDrive,但我只能下载文件到相同的位置作为我的Python程序。有没有办法指定文件的下载位置?这是我目前下载文件的方式。
我试图下载一个文件或文件夹从我的谷歌驱动器使用PyDrive 多次尝试使用文档后:https://gsuitedevs.github.io/PyDrive/docs/build/html/filemanagement.html#download-文件内容 我似乎仍然无法专心下载文件夹。 我已经设法列出我的项目的标题和ID,我只需要一种方式下载它们。 在列出带有ID和标题的文件夹和文件后,是否有任何
问题内容: 我有一个看起来像这样的文本文件: 我想使用node.js将每行的开头替换为“ myString”。因此,每个最终看起来像: 我正在尝试使用正则表达式,但是我怀疑可以使用读取和写入流来完成。 哪种正则表达式将起作用,或者使用node编辑此文件的最佳方法是什么? 问题答案: 根据您的需要,这是“同步”或“异步”的两个选项。