我无法通过Google Storage Service API获取项目:
Google.Apis.Storage.v1.StorageService service;
// ...
Google.Apis.Storage.v1.ObjectsResource.GetRequest request = service.Objects.Get(bucketName, uri);
request.Alt = StorageBaseServiceRequest<GCSObject>.AltEnum.Json;
Google.Apis.Storage.v1.Data resp = request.Execute();
我得到GoogleApiException
"An Error occurred, but the error response could not be deserialized."
不管指定的项是否存在于存储器中。
"request.ExecuteAsStream()" returns "Not Found" text only.
通过service.ObjectAccessControls.Insert()
方法设置ObjectAccessControl
时也会出现同样的问题。
你有什么建议吗?
注:我可以上传一个项目,但没有任何问题。
检查您的URI/Object是否包含需要转义的字符,如'/'。它可能导致(在. net 4中)响应not found 404,这意味着在Google cloud上找不到对象。.net的google api不能序列化这个错误,所以你会得到这个无用的消息("错误响应不能被反序列化")。
要解决这个问题,请在web配置中添加:<uri>
<schemeSettings>
<add name="https" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
</schemeSettings>
</uri>
我在这里解释了这个场景:斜杠,谷歌云存储&.NET4 .