Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Google云存储InsertMediaUpload服务BaseUri异常_C#_.net_Google Api_Google Oauth_Google Cloud Storage - Fatal编程技术网

C# Google云存储InsertMediaUpload服务BaseUri异常

C# Google云存储InsertMediaUpload服务BaseUri异常,c#,.net,google-api,google-oauth,google-cloud-storage,C#,.net,Google Api,Google Oauth,Google Cloud Storage,我正试图将一个文件上传到谷歌云存储的一个存储桶中 我编写了以下代码来创建StorageService并将文件上载到bucket GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer() { ClientSecrets = new ClientSecrets { ClientId = _googleSettings.Clie

我正试图将一个文件上传到谷歌云存储的一个存储桶中

我编写了以下代码来创建StorageService并将文件上载到bucket

GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer() {
    ClientSecrets = new ClientSecrets { ClientId = _googleSettings.ClientID, ClientSecret = _googleSettings.ClientSecret },
    DataStore = new FileDataStore(System.Web.HttpContext.Current.Server.MapPath("/App_Data")),
    Scopes = new string[] { StorageService.Scope.DevstorageReadWrite },
});

UserCredential userCredentials = new UserCredential(flow, Environment.UserName, new TokenResponse());

StorageService service = new StorageService(new BaseClientService.Initializer()
{
    HttpClientInitializer = userCredentials,
    ApplicationName = "GCS Sample"
});

Google.Apis.Storage.v1.Data.Object fileobj = new Google.Apis.Storage.v1.Data.Object() { Name = fileDetails.FileName };

ObjectsResource.InsertMediaUpload uploadService = service.Objects.Insert(fileobj, _googleSettings.BucketName, fileDetails.Stream, fileDetails.MimeContentType);

IUploadProgress progress = uploadService.Upload();

if (progress.Exception != null) //The exception always exists.
{
    throw progress.Exception;
}
但是,调用upload方法时会引发ArgumentNullException,该异常表示“值不能为null。参数名称:baseUri”


有人知道如何解决这个问题吗

我也遇到了这个错误,这是因为在我的流对象中有一个空格作为第一个字符。一旦我制作了一个非空格字符,上传就成功了。正如Vaqar在上面所说的,这似乎是一个默认错误,因此不确定这个答案是否有帮助,但可能会帮助其他人…

您能否在开发者控制台的API&Auth窗格中检查JSON API是否已为云存储启用。我在其他帖子上读到,即使您使用的是.NET,JSON API仍然需要启用。JSON API在开发者控制台中启用。我确实在StackOverflow上找到了另一个,因为此人提到此错误是默认错误。也许你可以试着打开一个新的服务帐户,看看是否会出现同样的错误。