python google api 创建有权限的文件夹
python google api create folder with permission
我正在尝试在 google 驱动器中创建一个 public 文件夹并进入 return 一个 link 进行共享
这个:
def createfolder(foldername,service):
new_role='reader'
types='anyone'
# create folder
file_metadata = {
'name': '{}'.format(foldername),
'mimeType': 'application/vnd.google-apps.folder',
'role': 'reader',
'type': 'anyone',
}
file = service.files().create(body=file_metadata,
fields='id,webViewLink').execute()
print('Folder ID: %s' % file.get('webViewLink'))
return file.get('id')
我走到这一步
它创建和文件夹并打印 link
尝试将字段添加到正文角色和类型中,并将其设置为 reader / 任何人,但这不起作用
角色类型字段似乎被忽略
有没有办法在创建时执行此操作,还是我必须在创建后更改权限?
创建文件夹和更改权限是两个不同的调用。
先创建你的目录
file = service.files().create(body=file_metadata).execute()
然后执行 permissions.update 将文件的权限设置为 public。
permissions = service.permissions().update(body=permissions).execute()
我不是 python 开发者所以代码是猜测
你必须打电话给 Permissions.create:
文件权限是通过 Permissions 处理的,而不是通过 Files
方法处理的。
如果您检查 Files resource representation,您会注意到某些字段,例如 name
或 mimeType
,在 Notes
下有单词 writable
.这意味着您可以使用此资源 (Files
) 方法直接修改这些字段。
如果您查看 属性 permissions
,您会发现那里没有 writable
。这意味着 permissions
不能直接更新,使用 Files
方法。您必须改用 Permissions
方法。
更具体地说,您必须在创建文件夹并检索其 ID
后调用 Permissions.create。
代码片段:
def shareWithEveryone(folderId, service):
payload = {
"role": "reader",
"type": "anyone"
}
service.permissions().create(fileId=folderId, body=payload).execute()
参考:
我正在尝试在 google 驱动器中创建一个 public 文件夹并进入 return 一个 link 进行共享 这个:
def createfolder(foldername,service):
new_role='reader'
types='anyone'
# create folder
file_metadata = {
'name': '{}'.format(foldername),
'mimeType': 'application/vnd.google-apps.folder',
'role': 'reader',
'type': 'anyone',
}
file = service.files().create(body=file_metadata,
fields='id,webViewLink').execute()
print('Folder ID: %s' % file.get('webViewLink'))
return file.get('id')
我走到这一步
它创建和文件夹并打印 link
尝试将字段添加到正文角色和类型中,并将其设置为 reader / 任何人,但这不起作用
角色类型字段似乎被忽略
有没有办法在创建时执行此操作,还是我必须在创建后更改权限?
创建文件夹和更改权限是两个不同的调用。
先创建你的目录
file = service.files().create(body=file_metadata).execute()
然后执行 permissions.update 将文件的权限设置为 public。
permissions = service.permissions().update(body=permissions).execute()
我不是 python 开发者所以代码是猜测
你必须打电话给 Permissions.create:
文件权限是通过 Permissions 处理的,而不是通过 Files
方法处理的。
如果您检查 Files resource representation,您会注意到某些字段,例如 name
或 mimeType
,在 Notes
下有单词 writable
.这意味着您可以使用此资源 (Files
) 方法直接修改这些字段。
如果您查看 属性 permissions
,您会发现那里没有 writable
。这意味着 permissions
不能直接更新,使用 Files
方法。您必须改用 Permissions
方法。
更具体地说,您必须在创建文件夹并检索其 ID
后调用 Permissions.create。
代码片段:
def shareWithEveryone(folderId, service):
payload = {
"role": "reader",
"type": "anyone"
}
service.permissions().create(fileId=folderId, body=payload).execute()