2016-09-01 3 views
1

AWS 모바일 허브를 설정할 수있게되었습니다. 이제 페이스 북 자격 증명을 사용하여 로그인 할 수 있습니다. 기본적으로 AWSMobileHubHelper을 사용하여 S3 버킷에 이미지를 업로드하고 싶습니다. 내가 알고있는 것은 AWS 모바일 허브는 일반 S3 업로드와 다르게 작동한다. 우리는 최대 일반적인 설정 대신 AWScognito 자격 증명을 AWSUserFileManager을 사용하는 거 야 + S3bucketAWSUserFileManager를 사용하여 S3에 이미지를 업로드하는 방법 Swift iOS

나는 그들의 문서에서이 기능을 찾았지만 아무런 설명이없는

. 나는 내 이미지를 NSData으로 전달할 수 있고 키는 내 경로 "public/aaa"라고 가정합니다. 모든 것이 잘된 코드를 실행했습니다. 나는 심지어 오류를 던지지도 않는다. 그러나 S3 버킷에 가면 이미지가 없습니다.

제 질문은 : 열쇠로 전달해야 할 사항은 무엇입니까 ?? 이것에 관한 문서는 전혀 없습니다.

이렇게하는 방법이 아닌 경우? AWSUserFileManager은 어떻게 작동합니까?

func uploadWithData(data: NSData, forKey key: String) { 
    let userFilemanager = AWSUserFileManager.defaultUserFileManager() 
    let localContent = userFilemanager.localContentWithData(data, key: key) 
    localContent.uploadWithPinOnCompletion(false, progressBlock: {(content: AWSLocalContent?, progress: NSProgress?) -> Void in 
     // handle progress here 
     }, completionHandler: {(content: AWSContent?, error: NSError?) -> Void in 
      if let error = error { 
       // handle error here 
       print("Error occured in uploading: \(error)") 
       return 
      } 
      // handle successful upload here 
    }) 
} 

감사합니다.

답변

1

해결책을 찾았습니다. 기본적으로 이것은 정확합니다.

공용 폴더에 데이터를 업로드하려면 위의 정확한 기능을 사용하면됩니다. 반면에 key = "public/yourFileName"

그러나 개인 폴더에 업로드하려면 AWSUserFileManager를 선언 할 때 identityId를 추가해야하며 키는 "private/(identityId!)/yourFileName ":

func uploadWithData(data: NSData, forKey key: String) { 
    let userFilemanager = AWSUserFileManager.defaultUserFileManager().identityId! 
    let localContent = userFilemanager.localContentWithData(data, key: key) 
    localContent.uploadWithPinOnCompletion(false, progressBlock: {(content: AWSLocalContent?, progress: NSProgress?) -> Void in 
     // handle progress here 
     }, completionHandler: {(content: AWSContent?, error: NSError?) -> Void in 
      if let error = error { 
       // handle error here 
       print("Error occured in uploading: \(error)") 
       return 
      } 
      // handle successful upload here 
    }) 
} 
관련 문제