2016-09-30 78 views
0

我正在创建自定义凭据提供程序,以便我可以设置accesskey,secretkey,令牌和到期日期,但我在上传文件时收到以下错误 [__NSCFString过期]:发送到实例自定义凭据提供程序问题 - Swift2.2,AWS 2.4.9,AWSCredentials AWSCredentialsProvider

下面无法识别的选择是我一直在使用雨燕2.2创建自定义类..请帮我在这里解决上述问题

_```

import AWSS3 
import AWSCore.AWSCredentialsProvider 
class MYAWSCredentialProvider:AWSCredentials, AWSCredentialsProvider{ 
var bucketName:String! 
var token:String! 
var awsAccessKey: String! 
var awsSecretKey: String! 
var awsExpiration: NSDate? 
var awsRegion:String! 

static let sharedInstance = MYAWSCredentialProvider(accessKey: "", secretKey: "", sessionKey: "") 

@objc func logins() -> AWSTask { 
    return AWSTask(result: token) 
} 

init(accessKey: String, secretKey: String, sessionKey: String?) { 
    super.init() 
    self.token = sessionKey 
    self.awsAccessKey = accessKey 
    self.awsSecretKey = secretKey 
} 
private static func sharedInstanceWith(accessKey: String, secretKey: String, sessionKey: String) -> MYAWSCredentialProvider { 
    let instance = MYAWSCredentialProvider.sharedInstance 
    instance.token = sessionKey 
    instance.awsAccessKey = accessKey 
    instance.awsSecretKey = secretKey 
    return instance 
} 
func updateAWSInfo (jsonString: JSON) { 
    awsAccessKey    = jsonString["accessKey"].stringValue 
    awsSecretKey    = jsonString["secretKey"].stringValue 
    bucketName     = jsonString["bucketName"].stringValue 
    awsRegion      = jsonString["region"].stringValue 
    token      = jsonString["token"].stringValue 
    let expirationTime   = jsonString["expirationTime"].stringValue 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "E MMM d HH:mm:ss 'UTC' YYYY"////Fri Sep 30 14:42:53 UTC 2016 
    let date = dateFormatter.dateFromString(expirationTime) 
    awsExpiration  = date 
    let credentialsProvider = MYAWSCredentialProvider.sharedInstanceWith(awsSecretKey, secretKey: awsSecretKey, sessionKey: token) 
    let configuration = AWSServiceConfiguration(region:AWSRegionType.APSoutheast1, credentialsProvider:credentialsProvider) 
    configuration.maxRetryCount = 3; 
    AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration 
} 
@objc func credentials() -> AWSTask { 
    return AWSTask(result: token) 
} 
func invalidateCachedTemporaryCredentials(){ 

} 
} 
+0

请在这里帮我 – Bhat

回答

1

尝试用下面的代码替换你的功能。

@objc func credentials() -> AWSTask { 

let credentials = AWSCredentials(accessKey: accessKey, secretKey: secretKey, sessionKey: sessionKey, expiration: nil) 

return AWSTask(result: credentials) 

} 
+0

This works well .. .. – Bhat

相关问题