我正在尝试在未经身份验证的情况下从 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/