2017-09-28 133 views
0

我试图使用Drive API Version 3(Python)访问Google Drive。列出文件似乎工作正常。当我尝试上传文件时,我得到的Permission错误不足。权限不足错误403:Google Drive Upload(Python)

我改变了我的范围,以充分的权限给我的脚本

SCOPES = 'https://www.googleapis.com/auth/drive' 

下面是我用它来创建文件

file_metadata = { 
    'name': 'Contents.pdf', 
    'mimeType': 'application/vnd.google-apps.file' 
} 
media = MediaFileUpload('Contents.pdf', 
         mimetype='application/vnd.google-apps.file', 
         resumable=True) 
file = service.files().create(body=file_metadata, 
            media_body=media, 
            fields='id').execute() 
print ('File ID: %s' % file.get('id')) 

我收到此错误消息块:

ResumableUploadError:HttpError 403“权限不足”

我不是s这里有什么不对。

回答

1

我认为你的脚本工作正常。从您显示的错误中,我认为需要重新授权访问令牌和刷新令牌。所以请尝试以下流程。

当您使用client_secret.json进行授权时,将创建凭证JSON文件。在默认的快速入门中,它将在主目录的.credentials中创建。

针对您当前的情况,请删除您当前的非client_secret.json的凭证JSON文件,并通过启动您的脚本重新授权。 Quickstart的默认文件名是drive-python-quickstart.json

由此,https://www.googleapis.com/auth/drive的范围反映到访问令牌和刷新令牌,它们用于上传过程。即使完成此流程时仍出现错误,请再次确认Drive API是否已在API控制台中启用。

如果这对你没有用,我很抱歉。

+0

我试过这个选项。这似乎工作。我认为这是因为我最初创建了使用不同范围创建的quickstart.json文件。当我改变范围时,它没有在文件中更新。当我删除并重新创建文件时,上传成功。 –

+0

@Subu Ganesh我很高兴听到这个工作正常。 – Tanaike

0

也许你已经有一个同名的文件吗?

+0

不,这是一个新文件。我试图创建一个文件夹而不是文件。它导致了相同的错误。清单文件没有问题。我不确定是否缺少授权许可。 –

+0

尝试关注此示例https://developers.google.com/drive/v3/web/manage-uploads – ChaosPredictor