ios - Google Cloud Storage iOS - 无身份验证

标签 ios objective-c swift google-cloud-storage

我正在尝试在未经身份验证的情况下从 Google Cloud Storage 上传或下载文件。我尝试使用类似于此的东西 https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Basics但没有用。

let storage = GTLServiceStorage()
storage.additionalHTTPHeaders = ["x-goog-project-id":"my-project-id", "Content-Type": "application/json-rpc", "Accept": "application/json-rpc"]
storage.APIKey = "my-server-api-key"
storage.retryEnabled = true

// bucket
let bucket : GTLStorageBucket = GTLStorageBucket()
bucket.name = "my-bucket-name"

// this code doesn't matter is only for test the previous code
let query : GTLQueryStorage = GTLQueryStorage.queryForBucketsInsertWithObject(bucket, project: "my-project-id") as GTLQueryStorage
        self.storage.executeQuery(query, completionHandler: { (ticket : GTLServiceTicket!, object : AnyObject!, error : NSError!) -> Void in
            NSLog("Bucket: \(object)");
        })

当我尝试上面的代码时出现“需要登录”错误,所以我尝试在前面的代码之前应用以下代码

auth.scope = kGTLAuthScopeStorageDevstorageFullControl
auth.clientID = "ios-client-id"
auth.clientSecret = "ios-client-secret"
auth.redirectURI = "urn:ietf:wg:oauth:2.0:oob"
storage.authorizer = auth // then set authorization to StorageService

但是不起作用。我收到错误,keyName: "Request"

请举例说明如何让它工作或我做错了什么。

谢谢。

最佳答案

虽然我不确定这是否能解决您的问题;您的所有变量都使用关键字 let 而不是 var 声明。使用 let 关键字可以防止将来对该对象进行任何更改。它定义了一个常量。这会阻止您像现在这样更改对象的属性。您可以在 Swift documentation 中找到更多相关信息。 .

关于ios - Google Cloud Storage iOS - 无身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444807/

相关文章:

objective-c - 当我设置 anchor 时,我的图像没有加载

swift - 在 Swift 中向 UIToolBar 添加顶部边框

ios - 为什么我的 View Controller 模态呈现的动画在某些设备上很慢?

ios - 如何在 UIStackView 中设置 UIView 的背景颜色?

ios - 作为 SubView VS ChildViewController 查看

ios - MFMessageComposeViewController 短信发送委托(delegate)

ios - 从 Bundle 加载图像我得到一个 nil

swift - 如何找到与x相差最小的字典值[Swift]

javascript - 在 phonegap 中禁用方向更改动画

javascript - 是否有保持 iPhone 摄像头录制的命令?