1

Я пытаюсь загрузить простой образ в хранилище облачных хранилищ Google через API C#. Кажется, это удается, но я ничего не вижу в своем облаке Google.Загрузка облачного хранилища Google не работает с C# API

код у меня до сих пор:

Google.Apis.Services.BaseClientService.Initializer init = new Google.Apis.Services.BaseClientService.Initializer(); 
init.ApiKey = "@@[email protected]@"; 
init.ApplicationName = "@@[email protected]@"; 

Google.Apis.Storage.v1.StorageService ss = new Google.Apis.Storage.v1.StorageService(init); 

var fileobj = new Google.Apis.Storage.v1.Data.Object() 
{ 
    Bucket = "images", 
        Name = "some-file-" + new Random().Next(1, 666) 
}; 

Stream stream = null; 
stream = new MemoryStream(img); 

Google.Apis.Storage.v1.ObjectsResource.InsertMediaUpload insmedia; 
insmedia = new Google.Apis.Storage.v1.ObjectsResource.InsertMediaUpload(ss, fileobj, "images", stream, "image/jpeg"); 
insmedia.Upload(); 
response.message = img.Length.ToString(); 

ответ

7

Кто ищет, чтобы сделать это, я собираюсь помочь вам, так как я не хочу, чтобы вы провести день поломать голову, так вот как ты сделай это.

Прежде всего создайте учетные данные типа «Учетная запись службы», которые предоставят вам закрытый ключ с расширением p12, сохраните его где-нибудь, на котором вы можете ссылаться на своем сервере.

Теперь это сделать:

String serviceAccountEmail = "YOUR SERVICE EMAIL HERE"; 

var certificate = new X509Certificate2(@"PATH TO YOUR p12 FILE HERE", "notasecret", X509KeyStorageFlags.Exportable); 

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail) 
    { 
     Scopes = new[] { Google.Apis.Storage.v1.StorageService.Scope.DevstorageFullControl } 
    }.FromCertificate(certificate)); 

Google.Apis.Storage.v1.StorageService ss = new Google.Apis.Storage.v1.StorageService(new Google.Apis.Services.BaseClientService.Initializer() 
{ 
    HttpClientInitializer = credential, 
    ApplicationName = "YOUR APPLICATION NAME HERE", 
}); 

var fileobj = new Google.Apis.Storage.v1.Data.Object() 
{ 
    Bucket = "YOUR BUCKET NAME HERE", 
    Name = "file" 
}; 

Stream stream = null; 
stream = new MemoryStream(img); 

Google.Apis.Storage.v1.ObjectsResource.InsertMediaUpload insmedia; 
insmedia = new Google.Apis.Storage.v1.ObjectsResource.InsertMediaUpload(ss, fileobj, "YOUR BUCKET NAME HERE", stream, "image/jpeg"); 
insmedia.Upload(); 
+0

Создание учетной записи службы в вашей консоли разработчика под Апи и аутентификацией -> Учетные – Saumil