1

我搜索谷歌但没有得到任何结果,我的代码如下:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

# this function used inside function do_the_work(drive)
def upload_gd(media_file, drive):
    print 'Try uploading ' + media_file

    xfile = drive.CreateFile()
    xfile.SetContentFile(media_file)
    xfile.Upload()
    print('Created file %s with mimeType %s' % (xfile['title'], xfile['mimeType']))

    permission = xfile.InsertPermission({
        'type': 'anyone',
        'value': 'anyone',
        'role': 'reader'})

    print 'Sharable link (to view) is:' + xfile['alternateLink']
    print 'Get direct link'
    file_id = xfile['alternateLink'].split('/')[-2]
    print 'file ID: ' + file_id
    d_link = 'https://drive.google.com/uc?export=download&id=' + file_id
    print 'Direct link is: ' + d_link

    return d_link

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)
do_the_work(drive)

而且,我获得的文件权限是:

任何人都可以找到和查看

但是,我只希望任何人都可以查看,但无法找到:

任何人都可以查看

4

2 回答 2

3

您需要添加withLink字段:

permission = xfile.InsertPermission({'type': 'anyone',
                                     'value': 'anyone',
                                     'role': 'reader',
                                     'withLink': True})  # <-- This field.

对于所有可能的设置,请查看 API 参考:链接(PyDrive 当前使用 API v2)

顺便说一句,您可以获得 with 的 ID,xfile因此xfile['id']您无需拆分备用链接。

调用后可以访问此处列出的所有字段。使用它,您可以从文件对象中提取不同类型的文件链接,这将比您当前的实现方法更强大。xfile['<property name>']xfile.FetchMetadata(fetch_all=True)

于 2017-03-09T14:09:15.127 回答
0
permission = xfile.InsertPermission({'type': 'anyone',
                                     'value': 'anyone',
                                     'role': 'reader'})

使用该语句,您实际上是将文件设置为公共只读。公共只读是互联网上的每个人都可以阅读的。

回答: 如果您不希望 Internet 上的任何人能够找到或查看它,请将类型设置为groupdomainuser更好,但将值设置为您希望能够查看该文件的人的电子邮件地址。

于 2017-03-09T07:43:36.330 回答