在 VB.NET 中将文件上传到 Google 驱动器 - 搜索工作代码

2024-01-02

我想使用 vb.net 将 txt 文件上传到我的谷歌驱动器,我搜索了大约 2 个小时,发现了这个使用 VB.NET Form 上传和下载到 Google Drive https://stackoverflow.com/questions/15646527/upload-and-download-to-google-drive-using-vb-net-form

Imports Google.Apis.Auth
Imports Google.Apis.Download

 'Dev Console:
 'https://console.developers.google.com/

 'Nuget command:
 'Install-Package Google.Apis.Drive.v2

Private Service As DriveService = New DriveService

Private Sub CreateService()
    If Not BeGreen Then
        Dim ClientId = "your client ID"
        Dim ClientSecret = "your client secret"
        Dim MyUserCredential As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With {.ClientId = ClientId, .ClientSecret = ClientSecret}, {DriveService.Scope.Drive}, "user", CancellationToken.None).Result
        Service = New DriveService(New BaseClientService.Initializer() With {.HttpClientInitializer = MyUserCredential, .ApplicationName = "Google Drive VB Dot Net"})
    End If
End Sub


Private Sub UploadFile(FilePath As String)
    Me.Cursor = Cursors.WaitCursor
    If Service.ApplicationName <> "Google Drive VB Dot Net" Then CreateService()

    Dim TheFile As New File()
    TheFile.Title = "My document"
    TheFile.Description = "A test document"
    TheFile.MimeType = "text/plain"

    Dim ByteArray As Byte() = System.IO.File.ReadAllBytes(FilePath)
    Dim Stream As New System.IO.MemoryStream(ByteArray)

    Dim UploadRequest As FilesResource.InsertMediaUpload = Service.Files.Insert(TheFile, Stream, TheFile.MimeType)

    Me.Cursor = Cursors.Default
    MsgBox("Upload Finished")
End Sub

无法让此代码工作..有人可以帮我修复此代码或在此处发布其他工作 vb.net 代码吗?


这是一步一步的代码:

1. 创建一个控制台 VB.NET 应用程序。

2. 安装 NuGet 包。

Open View > 其他窗户 > 包管理器控制台并输入:

Install-Package Google.Apis.Drive.v2

输出应如下所示:

PM> Install-Package Google.Apis.Drive.v2

...
Adding 'Google.Apis 1.9.2' to YourApp.
Successfully added 'Google.Apis 1.9.2' to YourApp.
Adding 'Google.Apis.Auth 1.9.2' to YourApp.
Successfully added 'Google.Apis.Auth 1.9.2' to YourApp.
Adding 'Google.Apis.Drive.v2 1.9.2.1940' to YourApp.
Successfully added 'Google.Apis.Drive.v2 1.9.2.1940' to YourApp.

PM> 

3. 将以下代码复制并粘贴到 Module1.vb 中:

Imports Google.Apis.Auth
Imports Google.Apis.Download

' Your original code was missing the following "Imports":
Imports Google.Apis.Drive.v2
Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Services
Imports System.Threading
Imports Google.Apis.Drive.v2.Data

Module Module1

    ' Call UploadFile(...) from your programs Main():
    Sub Main()
        UploadFile("C:\file_to_upload.txt")
    End Sub

    Private Service As DriveService = New DriveService

    Private Sub CreateService()
        Dim ClientId = "your client ID"
        Dim ClientSecret = "your client secret"
        Dim MyUserCredential As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With {.ClientId = ClientId, .ClientSecret = ClientSecret}, {DriveService.Scope.Drive}, "user", CancellationToken.None).Result
        Service = New DriveService(New BaseClientService.Initializer() With {.HttpClientInitializer = MyUserCredential, .ApplicationName = "Google Drive VB Dot Net"})
    End Sub

    Private Sub UploadFile(FilePath As String)
        'Not needed from a Console app:
        'Me.Cursor = Cursors.WaitCursor

        If Service.ApplicationName <> "Google Drive VB Dot Net" Then CreateService()

        Dim TheFile As New File()
        TheFile.Title = "My document"
        TheFile.Description = "A test document"
        TheFile.MimeType = "text/plain"

        Dim ByteArray As Byte() = System.IO.File.ReadAllBytes(FilePath)
        Dim Stream As New System.IO.MemoryStream(ByteArray)

        Dim UploadRequest As FilesResource.InsertMediaUpload = Service.Files.Insert(TheFile, Stream, TheFile.MimeType)

        '' You were mmissing the Upload part!
        UploadRequest.Upload()
        Dim file As File = UploadRequest.ResponseBody

        ' Not needed from a Console app:
        'Me.Cursor = Cursors.Default

        MsgBox("Upload Finished")
    End Sub
End Module

不要忘记更换:

  • 要上传的文件的路径。
  • 您的客户 ID。
  • 你的客户秘密。

在此处获取您的客户端 ID 和客户端密钥:https://console.developers.google.com/apis/credentials/oauthclient/ https://console.developers.google.com/apis/credentials/oauthclient/

就是这样!您的文件应该出现在https://drive.google.com/drive/my-drive https://drive.google.com/drive/my-drive

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 VB.NET 中将文件上传到 Google 驱动器 - 搜索工作代码 的相关文章

  • 变形:Opencv 使用 Visual Studio 将图像显示到曲面屏幕

    我正在尝试使用 opencv API 来扭曲图像 以便将其显示到曲面屏幕上 我已经浏览了opencv中提供的翘曲apihere http docs opencv org 2 4 modules stitching doc warpers h
  • 包含来自另一个目录的标头时出现 Visual Studio 链接错误

    简短的问题是 如何使用 Visual Studio 创建 编译 运行在不同目录中具有源代码的项目 以下是具体细节 我在一个目录中有一个类定义文件 hpp 和实现文件 cpp 在另一个目录中有一个 main cpp 文件 在 Visual S
  • VB 中的 xml 注释还可以自定义吗?

    从 Visual Studio 2005 开始 我们可以将名为 VBXMLDoc xml 的文件复制到路径中 C Users user AppData Roaming Microsoft VisualStudio version 定义可用于
  • 编译器特定的内存初始化

    有没有办法保证整个程序中某些对象的静态对象初始化顺序 我有内存分配器 我希望将其作为程序中的第一件事进行分配 因为它们将在整个程序的其他地方使用 并且我想使用这些分配器来分配所有后续内存 我知道这可能是特定于编译器的 因为我不相信 C 标准
  • WPF - 按多列排序时使用自定义比较器

    我有一个 ListView GridView 我想按 2 列排序 因此如果第 1 列中有 2 个以上的项目具有相同的值 它将按第 2 列排序 非常简单 但是在对 A Z 进行排序时 空字符串会出现在顶部 我想把它们移到底部 我制作了一个比较
  • 我可以将 Team Explorer 2010 与 Visual Studio 2008 一起使用吗?

    我觉得标题已经说得很清楚了 但我也想说一下为什么 我已经下载了 TFS 2010 和 Team explorer 2010 但我仍在使用 VS2008 短期内没有更改计划 我的问题是 我可以一起使用它们吗 另外 我的VS只是专业版 我不想下
  • ASP.NET Web API Swagger(Swashbuckle)重复OperationId

    I have a web api controller like below In swagger output I am having the below image And when I want to consume it in my
  • Visual Studio 2010 RTM 未通过 ClickOnce 发布

    有人在 VS2010 中使用 ClickOnce 吗 当解决方案构建良好时 我在发布时收到以下内容 Building WindowsFormsApplication1 Error Cannot publish because a proje
  • 如何引导 SQL Server 2008 Express SP1?

    我正在尝试将 SQL Server 2008 Express SP1 引导到我的应用程序中 之前我使用 Wise for Windows 来执行必备安装 但 Wise 尚不支持 Windows Installer 4 5 我现在尝试将 Vi
  • URL 的正则表达式

    我已经编写了正则表达式来验证 URL 它可以是这样的 example com www example com http www example com http www example com https www example com h
  • 在静态断言和运行时错误之间自动选择

    我有一个执行除法并检查对齐的宏 define BYTES TO WORDS x CHECK ALIGNMENT x 2 x 2 我想实施CHECK ALIGNMENT作为一个总是返回 1 的宏 并且如果满足以下条件则触发错误x不除以 2 宏
  • C++ 中的字符串到 LPCWSTR

    我正在尝试从字符串转换为 LPCWSTR 我使用多位 1 例如 LPCWSTR ToLPCWSTR string text LPCWSTR sw LPCWSTR text c str return sw 2 返回中文字符 LPCWSTR T
  • 在 Windows 7 上安装 VS 2008 Team Developer

    有人在 Windows 7 beta 上成功安装了 VS 2008 Team Developer 版本吗 每次我尝试时 都会收到有关 C Windows Winsxs 权限不足的错误 我能够毫无问题地安装 VS 2008 Team Data
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • 为 ASP.NET MVC 实现自定义登录

    我是 ASP NET MVC 的新手 需要一些关于如何实现以下内容的建议 该站点是一个使用率很高的站点 内部 内联网 约有 200 个用户 我们使用表单身份验证来访问 SQL Server DB 不是 Windows 集成 有些操作受到保护
  • 如何使用PowerShell批量调用Update-Database

    我们使用 Azure 弹性池生成多个客户端数据库和一个引用客户端数据库的主数据库 我们已经拥有多个数据库 并且正在开发新版本的代码 我们使用 EF6 代码优先 当我们更改模型 添加属性 时 我们创建迁移文件并需要调用Update Datab
  • 列出 Google 云端硬盘上特定演示文稿/文档的所有共享用户

    我们需要一份完整的列表 列出已获得 Google 云端硬盘上特定演示文稿 文档的 共享 查看权限的人员 我们有屏幕截图 但可能还不够 我们如何以编程方式检索这些信息 附加到 a 的属性File对象包括三个与用户相关的项目 Owner 一个单
  • 使用名称变量访问多个表单控件

    我正在尝试迭代一组 ComboBox 并使用连接的字符串和变量来设置属性来表示控件的名称 但是 我无法让表单实例将 String Integer Variable 识别为其控件之一 因此它无法将任何适当的属性或子例程识别为 System W
  • 在 Visual Studio 2012 Express 中设置 C++ 调试环境

    我需要调试的应用程序需要设置环境变量 这在 Visual Studio 2012 中似乎非常复杂 我想做类似的事情 set path c foo c bar c windows c program files application set
  • 我是否需要 SQL Server 数据库项目中链接服务器的数据库引用?

    在我的数据库项目中 我添加了对链接服务器的引用 当我在视图中使用此链接服务器并尝试构建数据库项目时 SSDT 报告错误 因为它无法理解对链接服务器上引用的任何架构的引用 LinkedServer DB1 dbo Table1 上面的代码会返

随机推荐

  • scikit learn 中的特殊性

    I need specificity对于我的分类 其定义为 TN TN FP 我正在编写一个自定义记分器函数 from sklearn metrics import make scorer def specificity loss func
  • libtool 与 ar 用于创建静态库(xcode 链接器)

    在 Mac 10 5 上使用 xcode 通过 libtool 创建静态库和通过命令行使用 ar 都会生成一个 libMainProject a 文件 但是 当尝试使用 libtool 生成的文件链接到 xcode 应用程序时 我最终会收到
  • 带星号的批量 FOR 循环

    我有这个单行 CMD 文件 TEST CMD for f in 1 2 3 4 5 6 7 8 DO ECHO f 如果我运行这个 TEST this is a test 它正确地在单独的行上回显每个参数 即 this is a test
  • 渲染良好的网络字体解决方案

    挑战 提供动态网页字体 可在所有主要浏览器 设备和操作系统上呈现可接受的效果 故事 所以我过去使用过 cufon 或 sifr 后来放弃了这两种方式 转而使用 font face 在生产中使用 font face一段时间后 我有了一个可怕的
  • 如何解决读取图像文件时IOError:损坏的数据流?

    我在 Ubuntu 11 04 下工作 我正在尝试在我的 Django 项目中使用 PIL 遗憾的是 PIL 无法加载我的图像 以下是 PIL 设置摘要 PIL 1 1 7 SETUP SUMMARY version 1 1 7 platf
  • 为什么Java char原语占用2字节内存?

    Java char 原始数据类型是 2 个字节 而 C 是 1 个字节 有什么原因吗 Thanks Java 最初设计时 预计任何 Unicode 字符都可以容纳 2 个字节 16 位 因此char and Character进行了相应的设
  • 带有 Tibco Native Libs 的 Java Webstart

    我正在尝试部署一个使用nativeTibrv 的实施通过TibrvJ图书馆使用Java 网络启动 我已经把所有的Windows都打包了dlls从内部c tibco tibrv bin放入 Jar 文件并将它们添加到nativelib中的元素
  • 在 XML/XSLT 中转义美元符号

    我正在处理使用 XSLT 转换 XML 来自遗留系统 的要求 我在处理带有美元符号的标签时遇到了问题 这就是它们在遗留系统中存储和生成的方式 示例 XML 文件的示例
  • 在 Jest 中使用 Next.Js 测试 Api

    我想使用 Jest 为我的 Api 文件编写测试用例 它使用 Next js 我尝试了很多方法 但无法获得任何文件覆盖率 ApiFile js const axios require axios import getConfig from
  • 使用 video.js 包装器启用 YouTube 播放

    好的 所以我正在尝试使用 video js 项目包装 换肤 YouTube 视频 以实现与我网站上其他视频类似的外观和感觉 现在根据您可以看到的文档here https github com videojs video js blob ma
  • Django 1.3 日志记录:未记录 500 个错误

    我正在努力让 django request 记录器按照广告宣传的方式工作 500 个错误似乎不会传播到附加到它的处理程序 在每个新项目的默认日志记录配置中 注释表示 此配置执行的日志记录是针对每个 HTTP 500 错误向站点管理员发送电子
  • phpDoc 表示法指定返回类型与参数类型相同

    想象一下以下假设的类结构 在所有 PHPdoc 提示都正确设置的情况下 这并不是一个非常罕见的场景 class BaseFilter base methods class TextFilter extends BaseFilter publ
  • 如何使用git将本地存储库复制到远程服务器?

    我正在尝试使用 git 在远程服务器中部署本地代码 这就是我所做的local文件夹我的网站 git init git add git commit m Initial commit 然后 在我的网络服务器 mkdir public html
  • jQuery 选择具有特定标题的表格单元格

    我有一个带有 标题 的表 该表使用常规 tr 标签 不是 th 我需要找到标题 Col2 然后为 Col2 下的每个单元格添加一个锚点 我可以 td contains Col2 查找标题 但数据行也可能有 Col2 我如何仅搜索第一行 然后
  • 将 robomongo 连接到 mongoDB docker 容器

    我正在运行一个NodeJS应用程序与docker 撰写 https docs docker com compose 一切正常 我可以通过连接到容器内的 Mongo 来查看所有数据 但是当我连接到机器人蒙戈 https robomongo o
  • 在 `Thread.setDefaultUncaughtExceptionHandler` 中显示一个对话框

    当我的 Android 应用程序抛出异常时 我想显示一个自定义对话框来告诉用户发生了错误 所以我使用Thread setDefaultUncaughtExceptionHandler设置全局异常处理程序 public class MyApp
  • 元素固定到视口但位于容器内

    我正在尝试建立一个网站 其侧面板位于右侧 主要内容位于左侧 主要内容已经存在并且相当复杂 侧面板是新添加的 并不总是可见 主要内容的 响应能力 应该根据侧面板是否处于活动状态而表现不同 例如 当没有侧面板时 主要内容需要从 3 列布局切换到
  • 服务器上的 Google App 脚本请求验证

    我正在开发一个add on对于 Google 文档 我想做POST request到我的网络服务器add on 我已经这样做了 但是我应该如何在服务器端验证请求是否来自我的add on仅有的 有没有csrf就像机制中Google App S
  • Rplotly版本4.5.2散点图图例气泡大小设置

    我在 R 中使用plotly 4 5 2 我创建了一个散点图 其大小取决于变量 问题是这些大小也反映在图例中 这使得它们难以阅读 我希望我的图表保持不变 唯一的例外是图例中气泡的大小 这些气泡可以设置为全部相同大小 也可以缩放为较小的大小
  • 在 VB.NET 中将文件上传到 Google 驱动器 - 搜索工作代码

    我想使用 vb net 将 txt 文件上传到我的谷歌驱动器 我搜索了大约 2 个小时 发现了这个使用 VB NET Form 上传和下载到 Google Drive https stackoverflow com questions 15