private Response.Listener<JSONObject> awsCognitoResponseListener = new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
bar.setProgress(50);
Log.d("awsCognito Response:", jsonObject.toString());
try {
strIdentityPoolID = jsonObject.getString("IdentityPoolId");
identityID = jsonObject.getString("IdentityId");
strToken = jsonObject.getString("Token");
developerProviderName = jsonObject.getString("DeveloperProviderName");
// Toast.makeText(getActivity(), IdentityPoolId, Toast.LENGTH_SHORT).show();
File fileToUpload = new File(AppConstants.MAIN_DIRECTORY + File.separator + "Recordings" + "/" + chosenFile);
Log.v(TAG, fileToUpload.getPath());
Uri uri = Uri.fromFile(fileToUpload);
Log.v(TAG, uri.getPath());
HomeActivity parentActivity = (HomeActivity) getActivity();
/*Developer Authentication Access*/
AWSAsyncTask mAwsAsyncTask = new AWSAsyncTask();
mAwsAsyncTask.execute();
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
private class AWSAsyncTask extends AsyncTask<Void, String, String>
{
private String errorResponse;
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected String doInBackground(Void... voids) {
PutObjectResult putResponse = null;
CognitoParams cognitoParams = new CognitoParams();
cognitoParams.setIdentityPoolId(strIdentityPoolID);
cognitoParams.setIdentityId(identityID);
cognitoParams.setDeveloperProviderName(developerProviderName);
cognitoParams.setRegions(getRegion());
DeveloperAuthenticationProvider developerProvider = new DeveloperAuthenticationProvider(null, getActivity(), cognitoParams);
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(getActivity(),developerProvider,getRegion());
Map<String, String> logins = credentialsProvider.getLogins();
if (logins == null)
{
logins = new HashMap<String, String>();
}
logins.put(AppConstants.DEVELOPER_PROVIDER, strToken.trim());
credentialsProvider.setLogins(logins);
try
{
AmazonS3Client s3Client = new AmazonS3Client(credentialsProvider);
File fileToUpload = new File(AppConstants.MAIN_DIRECTORY + File.separator + "Recordings" + "/" + chosenFile);
s3Client.setRegion(Region.getRegion(getRegion()));
PutObjectRequest putRequest = new PutObjectRequest(BucketName, S3FileName, fileToUpload);
putResponse = s3Client.putObject(putRequest);
Log.v("Response bimal: ", putResponse.toString());
return putResponse.toString();
}
catch (NotAuthorizedException e)
{
Log.e(TAG, e.getErrorMessage());
errorResponse = e.getErrorMessage();
}
catch (InvalidIdentityPoolConfigurationException e)
{
Log.e(TAG, e.getErrorMessage());
errorResponse = e.getErrorMessage();
}
return null;
}
@Override
protected void onPostExecute(String s)
{
super.onPostExecute(s);
flag_btnClick = 1;
if (s != null)
{
uploadConfirmAPI();
}
else
{
errorDialog(errorResponse);
}
}
}
開発者認証アイデンティティ
開発者が身元を認証し、まだユーザーデータとアクセスを同期するためにアマゾンCognitoを使用している間、あなたは、あなた自身の既存の認証プロセスを経てユーザーを登録し、認証することができますAWSリソース開発者認証IDを使用すると、エンドユーザデバイス、バックエンドの認証、およびAmazon Cognitoとのやりとりが行われますが、CognitoCachingCredentialsProvider
は設定されていません。トークンとidentityIDアマゾンCognito不正ログイントークンのAndroid
それは上から貼り付けられたテキストだけのように見えますマニュアルでは、あなたが何を求めているのかは明らかではありません。 – halfer
DeveloperAuthenticationProviderをCognitoParamsに渡し、次にCognitoCachingCredentialsProviderをDeveloperAuthenticationProviderに渡してから、logins.put(AppConstants.DEVELOPER_PROVIDER、strToken.trim())の後に渡します。 これはCognitoCachingCredentialsProviderのidentityIDとTokenに設定されていますが、実際にはnullなので、CognitoCachingCredentialsProviderでこの2つの値を設定するにはどうすればいいですか。私はデバッグモードを私のファイルアップロードの成功を価値に設定している場合。 – bimal