Ответ:
Код, который вы используете, не предназначен для загрузки файлов с Google Диска; это для получения файлов из Google Cloud Storage.
Дополнительная информация:
После просмотра вашего вопроса я понял, что вы пытаетесь перевести код, который загружает данные из Google Cloud Storage , а не с Google Диска. Это не одно и то же, и одно нельзя использовать для другого. Здесь я предоставлю исправления для вашего кода и способы аутентификации на Google Диске с использованием VB. NET *.
Также стоит отметить, что в зависимости от того, хотите ли вы загрузить собственный файл Google Диска (Docs / Sheets / Slides / et c) или просто файл, сохраненный там, так как собственные файлы Google Диска не могут быть загружены напрямую, и должны быть экспортированы в формат, совместимый с загрузкой, такой как .docx
или .csv
.
Исправления кода для Google Cloud Storage:
В качестве компиляции того, что уже упоминалось в комментариях выше, вам не хватает двух импортов для методов в вашем коде:
Imports Google.Apis.Storage.v1
Imports Google.Apis.Download
Как вы и просили; BUCKET_HERE
и OBJECT_HERE
- это корзины и объектов из Google Cloud Storage - это соответственно контейнеры для данных и сами фрагменты данных.
Загрузка файл с Google Диска:
Для загрузки с Google Диска, а не с Google Cloud Storage, вам нужно использовать Google Drive API .
Google предоставляет Быстрый старт на как настроить проект для .NET
framework , но их пример специально для C#. Для. NET Drive Library имеется полная библиотека документации, которую можно найти здесь . Однако основными интересными страницами являются:
- Ссылка на класс Google.Apis.Drive.v3.FilesResource
GetRequest
Ссылка на класс ExportRequest
Ссылка на класс
Фрагмент кода:
Для начала вот фрагмент кода, включающий импорт и создание Служба накопителей:
Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Drive.v3
Imports Google.Apis.Drive.v3.Data
Imports Google.Apis.Services
Imports Google.Apis.Util.Store
Imports System.IO
Imports System.Threading
Module Module1
Dim Scopes() As String = {DriveService.Scope.Drive}
Dim ApplicationName As String = "Your-Application-Name"
Private Service As DriveService = New DriveService
Public Sub Main()
Dim creds As UserCredential
'Store your credentials file in the project directory as 'credentials.json'
'Don't forget to include it in your project
Using Stream = New FileStream("credentials.json", FileMode.Open, FileAccess.Read)
'Creates a token file for this auth, make sure to delete it and re-auth
'if you change scopes
Dim credentialFile As String = "token.json"
creds = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(Stream).Secrets,
Scopes,
"user",
CancellationToken.None,
New FileDataStore(credentialFile, True)).Result
Console.WriteLine("Credentials saved to: " + credentialFile)
End Using
'Create Drive API service.
Dim Service = New DriveService(New BaseClientService.Initializer() With
{
.HttpClientInitializer = creds,
.ApplicationName = ApplicationName
})
'Define parameters of request here, depending on whether you need to use
'the get or export methods
Dim fileId As String = "your-file-id"
'File processing goes here!
End Sub
End Module
Посмотрите на Quickstart, чтобы понять, как настроить проект и получить свои учетные данные.
Надеюсь, это полезно для вас!
Ссылки: