2016-05-31 7 views
0

Я пытаюсь получить назначенный url для этих музыкальных файлов с сервера amazon, у меня есть рабочий код android, но не удалось найти способ в Objective-C для этого.Как настроить пользовательские конечные точки в amazon ios sdk для присвоения URL?

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

Этот код находится в 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) 

Это то, что я делаю в КСН до сих пор, но URLs имеют существенную разницу, и я получаю AccessDenied ошибку, возможно, потому, что нету упомянутых пользовательских конечных точек.

Пожалуйста, дайте мне знать, если вы знаете решение этого вопроса.

ответ

0

Мне удалось получить это, используя версию 1 amazon sdk. Просто напишите стручок «AWSiOSSDK», если вы используете стручки какао, если вы хотите сделать это вручную, то вам нужно, чтобы получить его из GitHub get it here

Примечания - Как амазонка оленьей кожи обеспечить эту функциональность в версии 2 SDK я должен используйте эту версию без изменений.