2017-09-11 4 views
0

카메라에서 가져온 이미지를 s3 버킷에 업로드하려고합니다.Android에서 Java를 사용하여 Amazon S3 버킷에 이미지를 업로드하는 방법은 무엇입니까?

CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(), 
"us-west-2:xxxxxxxxxxxxx", 
Regions.US_WEST_2 
); 

AmazonS3Client s3Client = new AmazonS3Client(new AWSCredentials() { 
     @Override 
     public String getAWSAccessKeyId() { 
      return "XXXXXXX"; 
     } 

     @Override 
     public String getAWSSecretKey() { 
      return "XXXXXXX"; 
     } 
    }); 


    TransferUtility transferUtility = new TransferUtility(s3Client,getApplicationContext()); 

transferUtility.upload(MY_BUCKET,file.getName(),file); 

내 수영장은 우리 서쪽 -2에 있지만 내 양동이 지역은 아시아 태평양 지역에 있습니다.

위의 코드를 실행하면 충돌이 발생하고 아래에 오류가 표시됩니다.

Java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in com.amazonaws.mobileco[email protected]744215 
                       at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$-android_app_LoadedApk$ReceiverDispatcher$Args_50043(LoadedApk.java:1282) 
                       at android.app.-$Lambda$FilBqgnXJrN9Mgyks1XHeAxzSTk.$m$0(Unknown Source:4) 
                       at android.app.-$Lambda$FilBqgnXJrN9Mgyks1XHeAxzSTk.run(Unknown Source:0) 
                       at android.os.Handler.handleCallback(Handler.java:769) 
                       at android.os.Handler.dispatchMessage(Handler.java:98) 
                       at android.os.Looper.loop(Looper.java:164) 
                       at android.app.ActivityThread.main(ActivityThread.java:6540) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
                       Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10084 nor current process has android.permission.ACCESS_NETWORK_STATE. 
                       at android.os.Parcel.readException(Parcel.java:1948) 

매니페스트 파일에 permissons 및 서비스를 추가했습니다. 이 문제를 해결하고 아시아 태평양 지역의 s3 버킷에 이미지를 보내려면 어떻게해야합니까?

내가 매니페스트 파일에서 이러한 권한이 - 오류가 명확하게 진술로

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="ANDROID.PERMISSION.ACCESS_NETWORK_STATE" /> 

+0

권한이 당신이 추가됩니다 무엇입니까 매니페스트 –

+0

<사용 권한 android : name = "android.permission.ACCESS_NETWORK_STATE"/> –

+0

잘못된 생성자를 사용 중입니다. 당신은'credentialsProvider'를 s3Client의 입력으로 사용해야합니다. –

답변

0

을, 당신은에 android.permission.ACCESS_NETWORK_STATE 권한을 추가 할 필요가 매니페스트

+0

나는 이미 그 허가를 가지고있다 –

+0

체크 대문자 –

+0

@alansamuel @ N.V.Rao는 당신의 허락이'ANDROID.PERMISSION.ACCESS_NETWORK_STATE' 인 반면에'android.permission.ACCESS_NETWORK_STATE'이어야한다고 제안했다. –

관련 문제