为 AWS S3 生成签名 URL

Generating a signed URL for AWS S3

我正在尝试为 AWS S3 创建一个已签名的 url,我只想将 URL 用于存储桶中的文件,我不想将其用于 [=24] =].

我已经按照亚马逊文档中的步骤尝试了 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 returns 是一种类型 (AWSTask *),我的问题是如何将 AWSTask 转换为已签名的 url?

此外,我不打算在我的代码中保留密钥,这只是临时测试。

如果有人能帮我找到如何获得 preSignedURL 那将是一个很大的帮助。 谢谢

你试过S3BackgroundTransfer-Sample了吗?它应该可以帮助您入门。

您可以查看 Taming the AWS framework to upload a large file to S3 它还涵盖了在 swift

中生成预签名 URL

我假设您正在尝试处理背景 upload/downloads。为此,您可以使用 AWSS3TransferUtility

您可以在 http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transferutility.html

上阅读更多详细信息