0

Amazonサーバーからこれらの音楽ファイルの署名付きURLを取得しようとしています.Androidの作業コードがありますが、Objective-Cでこれを行う方法が見つかりませんでした.

public static String getPreSignedURL(String url) {
java.util.Date expiration = new java.util.Date();
long msec = expiration.getTime();
msec += 1000 * 60 * 5; // 5 minutes
expiration.setTime(msec);

AWSCredentials myCredentials = new BasicAWSCredentials(
AppConstants.AWS_ACCESS_KEY_ID, AppConstants.AWS_SECRET_KEY_ID);
AmazonS3 s3client = new AmazonS3Client(myCredentials);
s3client.setEndpoint(AppConstants.ENDPOINT_S3);
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(
AppConstants.BUCKET_NAME, url.replace(AppConstants.OBJECT_NAME_FILTER, ""));
request.setExpiration(expiration);
URL objectURL = s3client.generatePresignedUrl(request);
return objectURL.toString();
}

この上記のコードはアンドロイドです。

var presignedUrl: AWSTask = AWSTask()
let expiration = NSDate().dateByAddingTimeInterval(5*60)


let credential = AWSStaticCredentialsProvider.init(accessKey: AWS_ACCESS_KEY_ID, secretKey: AWS_SECRET_KEY_ID)
let configuration = AWSServiceConfiguration.init(region:.USEast1, credentialsProvider: credential)

//print("%@",configuration.endpoint)
//let regionTp = AWSRegionType(s)

AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
let urlBuilder = AWSS3PreSignedURLBuilder.defaultS3PreSignedURLBuilder()


let preSignedURLRequest = AWSS3GetPreSignedURLRequest.init()

preSignedURLRequest.key = "10488/01-New_Jack_City_hq.mp3"
preSignedURLRequest.bucket = "damixhub"
preSignedURLRequest.expires = expiration
preSignedURLRequest.HTTPMethod = .GET
presignedUrl = urlBuilder.getPreSignedURL(preSignedURLRequest)

これは私が今までiosで行っていることですが、URLには大きな違いがあり、おそらくカスタムエンドポイントについて言及していないため、アクセス拒否エラーが発生します。

これの解決策をご存知でしたら教えてください。

4

1 に答える 1

0

これは、Amazon SDK のバージョン 1 を使用して取得できました。ココアポッドを使用している場合は、ポッド「AWSiOSSDK」と書くだけです。手動で行いたい場合は、github から取得する必要があります。

注 - Amazon はバージョン 2 の SDK でこの機能を提供していないため、この非推奨バージョンを使用する必要があります。

于 2016-06-17T19:32:18.287 に答える