我正在尝试为AWS S3创建一个签名的url,我只想要我的bucket中的一个文件的url,不想使用它进行上传/下载。
我已经尝试过AFNetworking,按照Amazons文档中的步骤操作,现在正在使用AWS iOS SDK。
到目前为止,我有这个:
AWSStaticCredentialsProvider *credentialsProvider = [AWSStaticCredentialsProvider credentialsWithAccessKey:@"Access Key" secretKey:@"secret key"];
AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSWest2 credentialsProvider:credentialsProvider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;
AWSS3PreSignedURLBuilder * urlBuilder = [[AWSS3PreSignedURLBuilder alloc] initWithConfiguration:configuration];
AWSS3GetPreSignedURLRequest *preSignedURLRequest = [AWSS3GetPreSignedURLRequest new];
preSignedURLRequest.bucket = @"bucket-name";
preSignedURLRequest.key = @"/filename";
preSignedURLRequest.HTTPMethod = AWSHTTPMethodGET;
preSignedURLRequest.expires = [NSDate dateWithTimeIntervalSinceNow:3600];
NSURL *preSignedURL = [urlBuilder getPreSignedURL:preSignedURLRequest];
NSLog(@"%@", preSignedURL);
我收到了很多关于代码贬值的错误,但更重要的是,我知道getPreSignedURL方法返回一个类型(AWSTask*),我的问题是如何将AWSTask转换为签名的url?
此外,我不打算在代码中留下密钥,这只是测试的临时步骤。
如果有人能帮我找到如何获得preSignedURL,那将是一个很大的帮助。感谢
您可以查看Taming AWS框架以将大文件上传到S3,它还包括在swift 中生成预签名的URL
您尝试过S3BackgroundTransfer Sample吗?它应该能帮助你开始。
我假设您正在尝试处理后台上传/下载。为此,您可以使用AWSS3TransferUtility
。
您可以在上阅读更多详细信息http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transferutility.html