C# Google云存储InsertMediaUpload服务BaseUri异常
我正试图将一个文件上传到谷歌云存储的一个存储桶中 我编写了以下代码来创建StorageService并将文件上载到bucketC# 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
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上找到了另一个,因为此人提到此错误是默认错误。也许你可以试着打开一个新的服务帐户,看看是否会出现同样的错误。