使用 Google Drive .NET API 创建文件的空响应

2024-02-02

我正在尝试使用 Google Drive .NET API v3 将文件上传到我的云端硬盘。我的代码如下

static string[] Scopes = { DriveService.Scope.Drive,
                       DriveService.Scope.DriveAppdata,
                       DriveService.Scope.DriveFile,
                       DriveService.Scope.DriveMetadataReadonly,
                       DriveService.Scope.DriveReadonly,
                       DriveService.Scope.DriveScripts };
    static string ApplicationName = "Drive API .NET Quickstart";

    public ActionResult Index()
    {
        UserCredential credential;

        using (var stream =
            new FileStream("C:/Users/admin1/Documents/visual studio 2017/Projects/TryGoogleDrive/TryGoogleDrive/client_secret.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = Environment.GetFolderPath(
                System.Environment.SpecialFolder.Personal);
            credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");

            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            Debug.WriteLine("Credential file saved to: " + credPath);
        }

        // Create Drive API service.
        var service = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,
        });

        // Define parameters of request.
        FilesResource.ListRequest listRequest = service.Files.List();
        listRequest.PageSize = 10;
        listRequest.Fields = "nextPageToken, files(id, name)";

        // List files.
        IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
            .Files;
        Debug.WriteLine("Files:");
        if (files != null && files.Count > 0)
        {
            foreach (var file in files)
            {
                Debug.WriteLine("{0} ({1})", file.Name, file.Id);
            }
        }
        else
        {
            Debug.WriteLine("No files found.");
        }

        var fileMetadata = new Google.Apis.Drive.v3.Data.File()
        {
            Name = "report.csv",
            MimeType = "text/csv",
        };
        FilesResource.CreateMediaUpload request;
        using (var stream = new FileStream("C:/debugging/report.csv",
                                FileMode.Open))
        {
            request = service.Files.Create(
                fileMetadata, stream, "text/csv");
            request.Fields = "id";
            request.Upload();
        }
        var response = request.ResponseBody;
        Console.WriteLine("File ID: " + response.Id);

        return View();        
    }

我面临的问题是响应始终为空。我进一步查看了一下,发现该请求返回了 403 resultCode。我还看了一些关于SO的其他问题this https://stackoverflow.com/questions/39468798/google-drive-api-v3-response-null and this https://stackoverflow.com/questions/19021931/google-drive-api-v2-insertmediaupload-null-response-received?rq=1但两者都没有任何帮助。

编辑:我忘了提及代码的第一部分工作正常 - 它列出了我的云端硬盘中的所有文件。只有第二部分不起作用(上传文件部分)


    string[] Scopes = { DriveService.Scope.Drive };
  • 更改 Drive 范围,然后删除文件 token.json
  • 在 vs2017 中,当 client_secret.json 文件存在时,您可以在 token.json 文件夹中看到 token.json 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Drive .NET API 创建文件的空响应 的相关文章

  • 模式弹出窗口上的按钮单击事件,在网格视图内未触发

    我遇到以下问题 场景 我有一个 asp 网格 其中有一些绑定到数据的列 最后一列已转换为模板字段 在这个模板字段中有一个按钮 上面附加了一个模式弹出扩展器 该字段中隐藏着一个模式弹出窗口 此模式弹出窗口用于添加新帐户 它包含 2 个文本框
  • ASP.NET MVC,Bootstrap Tables,获取每列的值

    在 ASP NET MVC 中 我有一个操作 它接受有关行和列的用户输入 然后导航到根据用户输入生成所需行数和列数的操作 如下所示 Views div class container style width 1px div class ro
  • ASP .NET Web 应用程序内存泄漏 - 探查器显示大量字符串

    我的 Web 应用程序经常遇到对分配给应用程序池的虚拟内存设置的 IIS 限制 这会导致 IIS 停止该应用程序 我一直在尝试使用 NET 内存分析器来识别我的应用程序中可能存在的内存泄漏 到目前为止 GC 后保留的最大内存量似乎是在字符串
  • pubxml Web 发布工具事件生命周期

    我正在使用 Visual Studio 2012 中的 Web 发布工具发布到文件系统 我了解到我可以打开 Properties 文件夹中的 pubxml 来执行更高级的操作 我想要做的是在发布任务结束时运行命令行应用程序 我通常会在自定义
  • ASP.NET 网站“发布”与 Web 部署项目

    如果我决定对 ASP NET 网站使用 发布 选项 而不是 Web 部署项目 我可以执行自定义 msbuild 操作吗 或者 如果我想在编译 部署期间执行自定义 msbuild 操作 我是否需要坚持使用 WDP 我认为发布选项是 VS NE
  • 当我想要发布项目时:“指定的路径、文件名或两者都太长”

    当我想运行或发布网络项目时 我收到此错误 严重性代码 说明 项目文件行抑制状态 错误 无法评估项目元数据 FullPath 项目元数据 FullPath 无法应用于路径 jquery ui 1 10 3 custom development
  • “通用”电话号码的基本正则表达式

    我需要一个正则表达式 用于 ASP NET 网站 来验证电话号码 它应该是灵活的 唯一的限制是 应至少为 9 位数字 没有字母 可以包含空格 连字符 单个 我搜索过 SO 和 Regexlib com 但我得到的表达式有更多限制 例如英国电
  • 如何在 ASP.NET MVC 中手动设置用户角色?

    我正在从事的这个项目要求我保留管理员用户的本地数据库 并为普通用户使用外部数据库 在管理数据库中通过身份验证的任何人都应被分配 管理员 角色 而通过其他数据库进行身份验证的任何人将始终被分配 用户 角色 我可以手动分配这些角色吗 我不需要角
  • 在 Asp.Net 中以编程方式添加样式表

    我想以编程方式在头部添加样式表 但我看到的示例之一似乎需要多行代码才能添加一个样式表 即使我可能需要很多 示例代码 HtmlLink css new HtmlLink css Href css fancyforms css css Attr
  • 当请求 Google 驱动器范围权限时,会出现无限加载对话框

    我想将 Google Drive 集成到我的应用程序中 以在其中存储用户的应用程序数据 我尝试过的 我已经实现了 Google 登录谷歌开发文档 https developers google com identity sign in an
  • 无法使用 Javascript 重定向到另一个页面

    在 html 文件中使用 Javascript 重定向页面 我这样使用 window location href http www google com 它工作正常 但是当我在 aspx 中尝试时它不起作用 下面是我的代码 提前致谢
  • 如何使用 BoundFields 将 FooterTemplate 添加到 GridView

    希望您周末愉快 终于我有了一些编辑 删除事件器来与 LINQ 支持一起工作 我有一个添加记录事件 我知道它正在工作 但是在尝试了一部分之后 我不知道如何在页脚中添加一些文本框 所以它是从页眉到页脚的一行 没有向右或向左移动 有人可以帮助我吗
  • OWIN中间件可以使用http会话吗?

    我有一些为 ASP NET 和 SignalR 复制的代码 我决定将其重写为 OWIN 中间件以删除这些重复 一旦我运行它 我注意到HttpContext Current Session为空 并且我没有看到任何会话对象IOwinContex
  • 限制违反架构 - asp.net MVP

    如果我们在应用程序中定义了层次结构 对于前三层架构 我们如何限制后续开发人员违反规范 例如 在 MVP 不是 ASP NET MVC 架构的情况下 演示者应该始终绑定模型和视图 这有助于编写正确的单元测试程序 然而 我们也遇到过这样的情况
  • 如何找到 IIS 在负载/性能测试期间模拟的平均并发用户数?

    我正在使用 JMeter 进行负载测试 我正在练习通过简单地增加我的分布式 JMeter 测试用例中的线程数并启动测试来查找我们的网络服务器可以处理的最大并发线程 用户 数量 然后 我突然意识到 虽然 MAX 数字可能有用 但REAL我的网
  • 如何根据 ASP.NET VNEXT MVC6 中给出的路径进行虚拟路由/重定向?

    我有一个网站 它在不同的路径上公开多个 API 每个 API 由特定于应用程序部分的控制器处理 例如example com Api Controller Action param1 stuff 其中控制器发生变化 但操作保持相当一致 我有几
  • 当用户告诉浏览器“刷新”时,是否应该填写 HTTP_REFERER?

    我正在尝试使用引用标头检查作为深度防御 即多种安全技术之一 但请注意仅依赖于任何一种技术 有时 MSIE 似乎不包含刷新时的引荐来源网址 这是预期的行为吗 无论如何 我是否可以检测刷新 以便我知道缺少引荐来源网址是可以的 是的 我知道引荐来
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 是否可以使用从服务器端 Oauth2 获取的访问令牌打开 google picker?

    我在服务器端使用 Oauth2 集成了我的 Google 驱动器 并在数据库中存储了访问令牌和刷新令牌等凭据 const clientId process env GOOGLE DRIVE CLIENT ID const clientSec
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下

随机推荐

  • 我们如何删除 Liferay 徽标、登录超链接和 Powered BY ?从屏幕上

    我使用 Liferay 6 和 Tomcat 进行开发 我为我的应用程序开发了一个自定义登录 POrtlet 现在进入http 本地主机 8086 http localhost 8086 显示我的自定义登录页面 请查看屏幕截图 我的问题是
  • Objective C + Reskit - 如何用键包装我的字典以避免格式问题?

    我正在尝试用密钥包装我的 HTTP POST 请求 换句话说 我想把这个变成 category id gt 1 food name token gt Pizza id gt 1 进入这个 dish gt category id gt 1 f
  • 继承公共接口的枚举中的代码重复

    我有几个符合通用接口的枚举 interface TableColumns String getColumnName int getColumnIndex ColumnType getColumnType boolean isEditable
  • 用C++计算字符串的MD5

    我有一个很好的内存映射文件示例 用于计算文件的 MD5 哈希值 效果很好 没有任何问题 我想改变它来计算字符串的 MD5 哈希值 所以例子是 包括 include
  • 任务计划程序 - 在未登录的情况下运行任务时访问非本地驱动器

    我在 win 调度程序中有一个每分钟运行的任务 该任务运行一个 bat 文件 SVN 会更新一系列文件夹 然后执行一个 perl 脚本 该脚本又会运行其他几个脚本 Perl 脚本的输出 日志 按日期 时间标记 被发送到共享驱动器 而不是任务
  • 弃用警告:危险的查询方法:ActiveRecord >= 5.2 中的随机记录

    到目前为止 common https stackoverflow com a 25577054 2995613从数据库获取随机记录的方法是 Postgress Model order RANDOM first MySQL Model ord
  • 将 ToolStripMenuItem 动态添加到 MenuStrip (C#/ Winforms)

    我已经实施了我的解决方案 基本解决方案 我很高兴 问题是 当我使用 Add 方法向 ToolStripItemCollection 添加新项目时 我得到了一些重载 有意义的重载是字符串参数 图像参数和 EventHandler 参数 因为我
  • 验证三个立方之和等于 33:在 R 中失败,在 Python 中有效

    最近 找到了以下方程的整数解 x 3 y 3 z 3 33 也就是说 它适用于x 8866128975287528 y 8778405442862239 z 2736111468807040 https en wikipedia org w
  • GnuPGME:GPG 签名 C++

    有没有人写过任何教程或有任何关于如何使用的文档GnuPGME http www gnupg org related software gpgme index en html所以我可以编写一个函数 例如gpgSign std string f
  • Session具体是做什么的?为什么不把ip和域名session看成一样呢?

    我想知道session具体有哪些 这不限于一种语言 下面仅以 php 为例 我使用 php session 当我使用我的网站域名时它运行良好 为了在 Windows 操作系统上的本地 vmvare ubuntu 中测试该网站 我更改了 Wi
  • 从中心即时裁剪图像 - Javascript?

    我有一堆图像 它们的宽度和高度各不相同 有些是正方形 有些是矩形 但我希望它们全部都是我选择的宽度和高度 我知道我可以在中使用 width 和 height 那么 我正在寻找的是一个可能的 javascript 解决方案 也许使用 jQue
  • 扩展默认类(SmallInteger)

    我正在尝试使用新的实例方法 square 来扩展 SmallInteger 类 我的想法是我希望能够调用 5 square 它会返回 25 使用实例方法扩展您自己的类相当简单 因为您知道变量名称 但我不知道 SmallInteger 类中的
  • 替换所有与正则表达式匹配的匹配项

    我有一个正则表达式 用于搜索包含以下内容的字符串 00 or 11 如下 00 11 我想做的是将所有与模式匹配的出现替换为 X00X or X11X 例如 字符串 00 0 11 会导致 X00X 0 X11X 我正在研究 Python
  • 使用 ReactJS 映射数组的数组

    所以我想做的是映射数组的数组 首先 我从简单开始并开始工作 一个简单的国家 地区数组 嗯 国家 地区代码 countries map value index gt return span h2 Hello world h2 hr span
  • 在 CustomScrollView 中使用 StreamBuilder 和 SliverLists

    我正在尝试使用StreamBuilder获取数据 我想使用显示该数据SliverList全部在一个CustomScrollView这样我就可以利用附带的功能CustomScrollView 关于如何实现这一目标有什么想法吗 当然 这很简单
  • 使用单个控制器控制多个 html5 音轨

    我正在尝试为网站实现一个非常小的音频播放器 界面相当简单 它有一个播放 暂停按钮和一个静音 取消静音按钮 我遇到的问题是为不同的曲目实现同一播放器的多个实例 播放器的 javascript 是 jQuery function var myA
  • 多个 ACS 网址

    我们使用 PingFederate 进行 SSO 并且是 SP 发起的 Ping Federate 将像 Idp 一样行事 对于应用程序 有 2 个网络服务器 用于高可用性 我的问题是 1 我们可以提供两个默认的url 在控制台中只能设置一
  • 如何使用 Gson 反序列化 ConcurrentMap

    我正在尝试反序列化一个具有ConcurrentMap但我得到了一个例外 Caused by java lang IllegalArgumentException Can not set java util concurrent Concur
  • 访问 Meteor 中的 node.js 文件系统模块

    我正在创建一个网络应用程序 它将编辑存储在用户硬盘上的一些配置文件 并决定尝试一下 Meteor 我想使用 Node js 的文件系统模块来处理配置文件的 I O 但我无法弄清楚如何包含该模块 经过一番搜索 我在 StackOverlow
  • 使用 Google Drive .NET API 创建文件的空响应

    我正在尝试使用 Google Drive NET API v3 将文件上传到我的云端硬盘 我的代码如下 static string Scopes DriveService Scope Drive DriveService Scope Dri