我无法通过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.
尝试通过ObjectAccessControl
方法设置service.ObjectAccessControls.Insert()
时会出现同样的问题。
你有什么建议吗?
P.S。我可以毫无问题地上传项目。
答案 0 :(得分:2)
检查您的URI /对象是否包含需要转义的字符,如&#39; /&#39;。 它可能会导致(在.NET4中)没有找到404的响应,这意味着在Google云上找不到该对象。 .net api for .net无法序列化此错误,因此您收到此无用消息(&#34;错误响应无法反序列化&#34;)。
要解决此问题,请添加到网络配置:
<uri>
<schemeSettings>
<add name="https" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
</schemeSettings>
</uri>
我在这里解释了这个场景:Slash, Google Cloud Storage & .NET4。