我正在尝试为AWS S3创建一个已签名的网址,我只想要我的存储桶中的文件的网址,我不想将其用于上传/下载。
我已经尝试了AFNetworking,按照亚马逊文档的步骤进行操作,现在正在使用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那将是一个很好的帮助。 感谢
答案 0 :(得分:1)
您可以查看Taming the AWS framework to upload a large file to S3它还包括在swift中生成预签名的网址
答案 1 :(得分:0)
你试过S3BackgroundTransfer-Sample吗?它应该可以帮助你开始。
答案 2 :(得分:-1)
我假设您正在尝试处理后台上传/下载。为此,您可以使用AWSS3TransferUtility
。
您可以阅读有关http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transferutility.html
的更多详情