【问题标题】:Uploading files to Google Cloud Storage from .Net从 .Net 将文件上传到 Google Cloud Storage
【发布时间】:2017-05-24 14:45:14
【问题描述】:

我们需要找到一种从随机 PC 随机上传 Windows 文本和文件的方法。我们目前通过 Windows 桌面 .net exe 程序中的 FTP API 执行此操作。 Google 似乎不支持这种类型的访问 - 我错过了什么吗?

gsutil、Platform SDK 和其他外部 Python 工具不适用于我们。

需要使用 Visual Studio for Windows Desktop 构建解决方案。通过 .Net HTTP 进行 REST 就可以了。

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage


    【解决方案1】:

    Google Cloud Storage 不直接支持基于 FTP 的上传。

    但是,GCS 确实有一个.NET client library。您当然可以使用它上传对象。

    sample apps 展示了如何使用该库将对象上传到 GCS。关键是:

        private void UploadFile(string bucketName, string localPath,
            string objectName = null)
        {
            var storage = StorageClient.Create();
            using (var f = File.OpenRead(localPath))
            {
                objectName = objectName ?? Path.GetFileName(localPath);
                storage.UploadObject(bucketName, objectName, null, f);
                Console.WriteLine($"Uploaded {objectName}.");
            }
        }
    

    【讨论】:

    • 如果可能,我会尽量避免使用 Google Cloud SDK - 特别是对于开发的结果程序。如果云 .net API 调用 gsutils 它对我不起作用。 Cloud .net API 可以在没有任何依赖的情况下从 Windows 桌面程序中使用吗?
    • 不明白你的问题。它不需要 gsutil 或任何其他外部依赖项。 NuGet 包确实列出了一些包作为依赖项,这很正常。
    • Google.Cloud.Storage.V1 的页面显示需要安装 SDK 并输入 CLI 命令进行身份验证。我需要在应用运行的所有桌面上执行此操作吗?
    • 为方便开发人员,如果您已安装并登录,客户端库可以从 SDK 读取您的凭据。通常您的最终程序不会以这种方式进行身份验证。相反,如果它在 Google Cloud 中运行,它将自动获取凭据,或者您将附加一个私钥文件并让它用于身份验证,或者您将为最终用户设置 OAuth 流程以自行登录.在 CLI 中绝不是一个要求。有关它如何读取凭据的更多信息,请参阅:developers.google.com/identity/protocols/…
    • 谢谢 Brandon,看起来“示例应用程序”链接已损坏?你有一个工作示例可以让我将文件从我的网络应用程序上传到谷歌云存储吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-04-25
    • 2018-12-23
    • 1970-01-01
    • 2018-06-20
    • 2020-06-06
    • 2019-06-04
    • 2020-06-13
    • 2014-09-18
    相关资源
    最近更新 更多