上传和下载文件到google drive/Local pc

news2024/11/17 9:37:44

1 上传

参考:使用 Python 将文件上传到 Google 云端硬盘_迹忆客

Upload file to google drive using Python - CodeSpeedy (没起作用,但可以参考一下)

第 1 步:Google API Playground

我们可以通过搜索 Google 找到更多关于 Google API Playground 的信息。 我们必须单击第一个链接才能继续前进。

搜索 Google api playground

选择第一个链接后,我们会自动进入下一个页面,如下:

重定向到 Google 开发人员

第 2 步:Google 云端硬盘 API

在 Google Developers 页面上,我们必须找到 Drive API 以及其他选项。

我们将搜索名为 Drive API 3 的选项并选择它。 当我们选择它时,一个链接列表将出现在我们面前。

搜索 Drive api v3

我们必须选择链接列表中显示的第一个链接。 如果我们要选择任何东西,我们需要先点击它,然后我们会看到它旁边出现一个复选标记。

所以在这里我们将点击第一个链接。

单击授权 api

在大约三到五秒钟的短暂等待后,我们将被重定向到我们的 Gmail 帐户。

第 3 步:Gmail 帐户

单击我们要将文件上传到其驱动器的 Gmail 帐户,然后按照屏幕上的说明进行操作。 屏幕上将显示取消和允许两个选项。

要继续,我们必须从下拉菜单中选择允许。 当我们点击 Google 帐户时,Google Auth 会询问我们是否要允许该操作。

允许 Gmail 帐户

第四步:授权码

当我们最终放弃并单击“允许”按钮时,我们将被重定向到一个新页面,我们可以在其中检索我们的权限代码。

代码授权

另一方面,我们不会复制它,因为我们不需要授权码。 相反,我们将单击交易授权码的按钮来访问令牌。

点击兑换授权码

单击按钮后,我们将获得访问令牌。

访问令牌

在处理 Python 代码时,我们需要复制访问令牌并将其存储在安全的地方。 我们将使用 Python 来方便将文件上传到我们的 Google 云端硬盘,并且需要访问令牌。


在 Google Drive 中上传文件的 Python 代码

第 1 步:库

首先,导入所需的库和模块。 在这种情况下,我们必须导入 JSON 和请求。

我们使用 JSON 上传文件和请求 API 以允许我们上传文件。

示例代码:

import json
import requests

第 2 步:访问令牌

其次,我们将创建一个字典并使用访问令牌作为其中一个键的值。 在这个场景中,授权是关键,访问令牌是价值。

示例代码:

headers = {"Authorization": "Bearer Paste your access token here"}

我们可以在 Bearer 后面复制并粘贴 access token,只用空格。

第 3 步:文件名

现在我们可以创建另一个字典并为我们要上传的文件命名。

示例代码:

para = {
    "name": "##name for python uploaded file####",
}

第 4 步:路径

现在我们必须访问我们要上传的文件。 为此,我们必须提供文件的路径。

Python 将按照路径到达文件并打开它。

示例代码:

files = {
    'data': ('metadata', json.dumps(para), 'application/json; charset=UTF-8'),
    'file': open("Pythonfile.jpg", "rb")
}

第 5 步:请求

现在我们将使用 Python 的 requests 模块来请求 Google Drive APIs 上传文件。

示例代码:

r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files
)

第 6 步:打印

现在我们将上述所有步骤与运行代码结合起来。 最后,我们将使用 print 语句来查看我们的代码是否有效。

示例代码:

import json
import requests
headers = {"Authorization": "Bearer Paste your access token here"}
para = {
    "name": "##name for python uploaded file####",
}
files = {
    'data': ('metadata', json.dumps(para), 'application/json; charset=UTF-8'),
    'file': open("Pythonfile.jpg", "rb")
}
r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files
)
print(r.text)

输出:

{
 "kind": "drive#file",
 "id": "1Furfhe8BFbkEhXn1xcYPr8jYAACNpfV7p",
 "name": "##python uploaded image####",
 "mimeType": "image/jpeg"
}

如果我们没有错误地得到这个输出,我们的代码工作正常,我们想要上传的文件必须上传到 Google Drive。

第 7 步:验证

我们可以去Google Drive查看文件是否上传成功。 我们 100% 确定我们的文件将按照上述步骤上传到驱动器中。

使用 Python,我们现在可以将文件上传到 Google Drive。 设置此过程很简单,只需几分钟,仅此而已。

# https://www.jiyik.com/tm/xwzj/prolan_6706.html

import json
import requests
headers = {"Authorization": "Bearer ya29.a0AfB_..."}
para = {
    "name": "Files/img.png",
}
files = {
    'data': ('metadata', json.dumps(para), 'application/json; charset=UTF-8'),
    'file': open("img.png", "rb")
}
r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files
)
print(r.text)

2  下载

参考:

ubuntu 使用gdown下载Google Drive文件, 文件夹, 下载别人分享的文件夹_谷歌云盘怎么下载别人分享的文件夹-CSDN博客google drive文件下载(python包)__less is more的博客-CSDN博客
 

需要注意google drive上的文件authenticate 'Anyone with link'

点击sharing,复制link:https://drive.google.com/file/d/1ZHC_IyqcPoq_WAQpVo94GAnmIu22QjYi/view?usp=sharing

提取标识符:1ZHC_IyqcPoq_WAQpVo94GAnmIu22QjYi

# img
#url = 'https://drive.google.com/uc?id=标识符'
url = 'https://drive.google.com/uc?id=1ZHC_IyqcPoq_WAQpVo94GAnmIu22QjYi'
output = 'downloaded_file.png'
gdown.download(url, output, quiet=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 开机启动一条PHP命令

当你开机的时候要自动的启动一条PHP命令场景:比如webman 你需要手动启动项目进程 你可以这样操作 流程: 1、准备好你要执行的命令 2、将命令写入一个服务文件 3、开机自启这个服务 实例: 1、比如这个命令 /usr/local/php/bin/php /ho…

Class类文件中的“咖啡宝贝”

Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。 字节码(Byte Code&am…

11、Python -- 列表去重的三种方法

目录 方法1:新列表搜集方法2:利用set集合方法3:使用itertools模块 新列表搜集法 使用set集合去重 使用itertools模块的groupby函数去重 方法1:新列表搜集 (1)创建新列表 (2)遍历源列…

Webpack 基础以及常用插件使用方法

目录 一、前言二、修改打包入/出口配置步骤 三、常用插件使用html-webpack-plugin打包 CSS 代码提取 CSS 代码优化压缩过程打包 less 代码打包图片文件 一、前言 本质上,Webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时…

如何完善文件传输审批流程,降低企业文件安全风险?

在当今高度信息化的时代,数据的价值日益凸显。然而,如果在文件对外传输过程中缺乏必要的审批和留痕记录,可能会带来严重的安全隐患。企业面临巨额的经济损失;其次,企业的品牌形象也受到了严重损害;此外&…

FreeRTOS 任务调度和任务的状态

目录 什么是任务调度? FreeRTOS的任务调度规则是怎样的? 抢占式调度运行过程​编辑 时间片调度运行过程​编辑 任务的状态 任务调度和任务的状态案例分析 什么是任务调度? 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。…

NotePad格式化SQL语句

NotePad格式化SQL步骤 今日自己在进行导出一些后台执行的SQL语句,但是在NOTEPAD上是未排版的,想想有没有这个插件呢? 1.导入插件 进入后,输入PoorManT-SqlFormatt进行搜索 2.点击格式化SQL 3.执行效果

Constellation 介绍:Chainlink 黑客马拉松

在 2020 年,Chainlink 举办了其第一次线上黑客马拉松。当时,DeFi 作为一个类别刚刚开始蓬勃发展,而 NFT 也只是刚刚起步。这次黑客马拉松吸引了来自 45 个国家的 1,000 多名注册参与者,并收到了来自 70 个项目提交。 从那时起&am…

分库分表-ShardingSphere 4.x(2)

❤️作者简介:2022新星计划第三季云原生与云计算赛道Top5🏅、华为云享专家🏅、云原生领域潜力新星🏅 💛博客首页:C站个人主页🌞 💗作者目的:如有错误请指正,将…

软考机考 画图

文章目录 绘制 前导图绘制 双代号网络图绘制 双代号时标网络图绘制 七格图绘制 类图绘制 时序图绘制 ER 图ER模型 简介 绘制表格 绘制 前导图 第一步:先画出所有活动,将活动命名 第二步:如需调整大小,选中要调整大小的元件&#…

CSS 快速实现水平垂直居中

CSS 快速实现水平垂直居中 文章目录 CSS 快速实现水平垂直居中一、前言二、弹性布局普遍做法三、弹性布局的妙用参考资料💘推荐博文🍗 一、前言 本文探究的是如何快速实现水平垂直居中,重点在于快速两个字,我对于快速的理解&…

智慧公厕:细致入微的城市贴心服务与便捷方便的生活配套

在现代城市生活中,公厕作为重要的城市基础设施,一直是城市发展的关键环节之一。然而,传统的公厕常常存在着设施陈旧、管理不善和卫生状况差等问题,给市民的生活品质和城市形象带来了一定的影响。为了提供更好的城市公厕服务&#…

Pillow(PIL)库的主要方法介绍

Pillow(Python Imaging Library)是Python中一个强大的图像处理库,它允许你进行图像的创建、打开、编辑、保存和显示等操作。Pillow 是 PIL(Python Imaging Library)的分支,支持多种图像格式,并提…

VLOOKUP函数的使用方法

VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值。它的基本语法为: VLOOKUP(查找目标,查找范围,返回值的列数,精确OR模糊查找)下面以一个实例来介绍…

Spring Cloud之微服务

目录 微服务 微服务架构 微服务架构与单体架构 特点 框架 总结 SpringCloud 常用组件 与SpringBoot关系 版本 微服务 微服务:从字面上理解即:微小的服务; 微小:微服务体积小,复杂度低,一个微服…

SpringBoot整合XXL-JOB详解

❤️作者简介:2022新星计划第三季云原生与云计算赛道Top5🏅、华为云享专家🏅、云原生领域潜力新星🏅 💛博客首页:C站个人主页🌞 💗作者目的:如有错误请指正,将…

【ESP8266】:基于ESP8266的LED时钟

项目场景: 在嘉立创看到一个好看的LED时钟,自己复刻一个。 项目效果: 视频效果: ESP8266LED时钟 项目介绍: 随着物联网的快速发展,嵌入式系统成为了现代生活中不可或缺的一部分。本论文基于ESP8266开发板&a…

配置VUE环境过程中 npm报错的处理方案以及VUE环境搭建过程

背景:VUE已经出来很久了,一直想研究这个东西也很久了。由于各种各样的原因,一直没有能处理。最近终于有时间可以研究了。 奈何报错了 嘤嘤嘤~~ 针对报错情况,其实后来没有找到什么好的方案,几经周折,终于搭…

vscode不显示横滚动条处理

最近发现vscode打开本地文件不显示水平的滚动条,但是打开一个临时文件是有水平滚动条的。 解决方案 可以一个个试 vscode配置 左下角设置–设置–搜索Scrollbar: Horizontal auto 自动visible 一直展示hidden 一直隐藏 拖动底部状态栏 发现是有的,但是…

Lua与C++交互

文章目录 1、Lua和C交互2、基础练习2.1、加载Lua脚本并传递参数2.2、加载脚本到stable(包)2.3、Lua调用c语言接口2.4、Lua实现面向对象2.5、向脚本中注册c的类 1、Lua和C交互 1、lua和c交互机制是基于一个虚拟栈,C和lua之间的所有数据交互都通…