我的Google Cloud Bucket的确切URI是多少?

时间:2016-05-16 19:40:21

标签: ios google-cloud-storage restful-url

我想从ios应用程序将图片上传到我的Google云端存储分区。我正在使用http post方法添加图片。但是,我想知道在我的代码中使用http Post方法的确切URI,因为Google文档使用了这么多,并且不准确。如果我的存储桶的名称是test1212test,确切的URI是什么?

2 个答案:

答案 0 :(得分:1)

请参阅Request URIs - 以下任何一项均可使用:

test1212test.storage.googleapis.com
storage.googleapis.com/test1212test
storage-upload.googleapis.com/test1212test
test1212test.storage-upload.googleapis.com

答案 1 :(得分:1)

这不是我想要的。这就是谷歌文档中的内容,但它不起作用,因为我的目标是直接从手机上传图片到谷歌桶。所以相反,在我的python API中,我返回了一个由blobstore生成的uploadURL并将其发送到我的iOS应用程序并使用了那个确切的上传URL并且它有效。

在Python API中:

USER_BUCKET = '%s-%d-%s-%d' % (first, age, email, now)

        my_upload_url = blobstore.create_upload_url('/upload',
                                                 gs_bucket_name=USER_BUCKET)

然后我创建了一个唯一的存储桶名称,然后我创建了他们唯一的上传网址。

在iOS应用中:

    NSString *uploadUrl = [[NSUserDefaults standardUserDefaults] stringForKey:@"uploadUrl"];
//This is your version
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager POST:uploadUrl parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

    NSData* imageData = UIImagePNGRepresentation(_image);
    [formData appendPartWithFileData:imageData name:@"file" fileName:@"testImages" mimeType:@"image/jpeg"];
} progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"Response: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

uploadUrl是用Python创建的,我只是将它保存到用户NSUsersDefaults。