2016-05-31 3 views
0

Ich versuche Presed-URL für diese Musik-Dateien von Amazon-Server zu bekommen, ich habe funktionierenden Code von Android, konnte aber keinen Weg in Objective-C finden, dies zu tun.Wie setze ich benutzerdefinierte Endpunkte in Amazon ios sdk für das Vorsignieren von URLs?

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(); 
} 

Dieser obige Code ist in Android.

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) 

Dies ist, was ich bis jetzt in ios mache aber Urls haben signifikanten Unterschied und ich möglicherweise AccessDenied Fehler, da ich erwähnte individuelle Endpunkte havent.

Bitte lassen Sie mich wissen, wenn Sie die Lösung dafür wissen.

Antwort

0

Ich habe es geschafft, dies mit der Version 1 von Amazon SDK zu bekommen. Gerade pod „AWSiOSSDK“ schreiben, wenn Sie Kakaoschoten verwenden, wenn Sie es manuell tun wollen, dann müssen Sie es von Github get it here

Hinweis bekommen - Wie Amazon tut diese Funktionalität in 2 von sdk Version bereitstellen muss ich Verwenden Sie diese veraltete Version.

Verwandte Themen