Google Storage API 1.8.1 - 项目问题

时间:2014-05-19 07:30:57

标签: google-api google-cloud-storage google-api-dotnet-client

我无法通过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。我可以毫无问题地上传项目。

1 个答案:

答案 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