我正在尝试将图片上传到Google云端存储空间几天.我尝试通过此链接https://code.google.com/p/google-api-objectivec-client/wiki/Introduction使用适用于Objective-C的Google API客户端库.
这是我的代码实现:
_serviceStorage = [GTLServiceStorage new];
_serviceStorage.APIKey = API_KEY;
_serviceStorage.additionalHTTPHeaders = @{@"x-goog-project-id": PROJECT_ID};
GTLUploadParameters *uploadParam = [GTLUploadParameters uploadParametersWithData:_imageData MIMEType:@"image/jpeg"];
GTLStorageObject *storageObj = [GTLStorageObject object];
GTLQueryStorage *query = [GTLQueryStorage queryForObjectsInsertWithObject:storageObj bucket:BUCKET_NAME uploadParameters:uploadParam];
GTLServiceTicket *ticket = [_serviceStorage executeQuery:query delegate:self didFinishSelector:@selector(serviceTicket:finishedWithObject:error:)];
ticket.uploadProgressBlock = ^(GTLServiceTicket *ticket,
unsigned long long numberOfBytesRead,
unsigned long long dataLength) {
self.progressView.progress = (float)numberOfBytesRead/(float)dataLength;
};
Run Code Online (Sandbox Code Playgroud)
使用该代码时,错误始终显示为"操作无法完成.(访问未配置.请使用Google Developers Console激活项目的API)".我不知道为什么会出现错误,而我已启用与Google云端存储和Google云端存储JSON API等存储相关的所有服务,并更改了存储分区的ACL,以便互联网上的所有用户都可以写入/上传到其中.
我还在上传前尝试过身份验证过程.viewDidLoad上的代码:
_serviceStorage = [GTLServiceStorage new];
_serviceStorage.additionalHTTPHeaders = @{@"x-goog-project-id": PROJECT_ID};
GTMOAuth2ViewControllerTouch *oAuthVC = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:kScope
clientID:kClientID …Run Code Online (Sandbox Code Playgroud)