使用REST API在Google驱动器中创建新文件夹

r

如果不存在,如何使用python在Google驱动器中创建新文件夹?我对这个Google API和python完全陌生。

(我有我帐户的访问令牌,我想使用该令牌创建文件夹。)

创建文件夹

import json
import requests
headers = {"Authorization": "Bearer Token"}

data = {
    "name": "name",
    "mimeType": "application/vnd.google-apps.folder"
}

r = requests.post("https://www.googleapis.com/drive/v3/files",
    headers=headers,data = data)
print(r.text)

仅创建文件,而不创建文件夹。如何解决该问题?

罗希特·雷迪·阿巴迪


    def get_folder_id(self, folder, parent):
        _r = None
        try:
            url = 'https://www.googleapis.com/drive/v3/files?q={0}'. \
                format(quote(
                    "mimeType='application/vnd.google-apps.folder'"
                    " and name ='{0}'"
                    " and trashed != true"
                    " and '{1}' in parents".format(folder, parent),
                    safe='~()*!.\''
                    )
                )
            _r = requests.get(url, headers={
                "Authorization": "Bearer {0}".format(self.get_access_token()),
                "Content-Type": self.file_bean.get_content_type(),
            })
            _r.raise_for_status()
            _dict = _r.json()
            if 'files' in _dict and len(_dict['files']):
                return _dict['files'][0]['id']
            else:
                _f = self.create_folder(folder, parent)
                if _f:
                    return _f
                status, status_message = self.get_invalid_folder()
        except requests.exceptions.HTTPError:
            status, status_message = self.get_http_error(_r)
        except Exception as e:
            logger.exception(e)
            status, status_message = self.get_unknown_error()


    def create_folder(self, folder_name, parent_folder_id):
        url = 'https://www.googleapis.com/drive/v3/files'
        headers = {
            'Authorization': 'Bearer {}'.format(self.get_access_token()), # get your access token
            'Content-Type': 'application/json'
        }
        metadata = {
            'name': folder_name, #folder_name as a string
            'parents': [parent_folder_id], # parent folder id (="root" if you want to create a folder in root)
            'mimeType': 'application/vnd.google-apps.folder'
        }
        response = requests.post(url, headers=headers, data=json.dumps(metadata))
        response = response.json()
        if 'error' not in response:
            return response['id']  # finally return folder id

使用get_folder_id在内部创建文件夹(如果不存在)。

PS:此代码是从我的工作中盲目复制的,如果您在理解上有任何困难,我可以详细说明答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Sharepoint:使用图形API在特定驱动器中创建一个新文件

使用api rest在Google驱动器中的创建文件夹期间未定义file.id

使用python API在Google驱动器中显示子文件夹

使用Google App脚本在云端硬盘中创建新文件夹

Google云端硬盘在共享驱动器中创建新文件夹

使用curl命令通过drive-rest-api将文件上传到Google驱动器中特定文件夹的直接方法

使用Google Advanced Drive服务使用Apps Script在文件夹中创建新文件

使用Powershell监视文件夹中的新文件,但忽略新文件夹

如何使用Finder在嵌套文件夹层次结构中创建新文件夹?

使用VBA在网络驱动器中创建文件夹

如何使用c#在谷歌驱动器中创建文件夹而不重复?

如何使用python脚本在谷歌驱动器中创建和显示文件夹?

如何使用Google脚本获取驱动器中文件夹的文件夹ID?

Multer使用数据创建新文件夹

使用pathlib在python中创建新文件夹并将文件写入其中

使用perticular目录中的jenkins为每个EAR文件构建创建新文件夹

使用Microsoft Graph API创建一个新文件夹

使用文件夹 ID 删除谷歌驱动器中的文件夹

如何使用 google-apps-script 在谷歌驱动器中访问上次创建的子文件夹及其文件

使用Java在Windows中创建新文件夹时遇到问题

如何使用Storage Access Framework在SD卡中创建新文件夹?

如何使用AWS PowerShell在S3中创建新文件夹

如何使用diff创建补丁程序以删除文件夹并创建新文件夹?

在Google驱动器上创建一个文件夹(如果不存在),然后使用Python脚本将文件上传到该文件夹

Google云端硬盘的FileID的格式是什么?我需要确定是否已使用API将新文件上传到驱动器

当已经存在同名文件夹时,如何使用boost创建新文件夹?

如何在Python中使用Google API v3使驱动器文件夹“对网络公开”?

使用python,我无法从Google Drive API v3访问共享驱动器文件夹

使用System.IO.Directory.CreateDirectory在网络驱动器中创建一个文件夹