Je travaille sur la construction d'une application Android qui prend une photo et la télécharge sur Amazon S3. Mon code semble fonctionner correctement, en ce sens qu'il est en cours d'exécution (confirmé via les points d'arrêt de débogage), mais il ne télécharge pas. Je ne reçois aucun message d'erreur, et les messages log.d que j'ai mis dans l'application n'apparaissent pas dans le logcat.L'application Android S3 ne fonctionne pas. Pas d'erreur
J'utilise ce tutoriel amazon: http://docs.aws.amazon.com/mobile-hub/latest/developerguide/add-aws-mobile-user-data-storage.html#add-aws-mobile-user-data-storage-app
La première fois que je courais le code, je me suis une erreur se plaignant que TransferUtility.builder()
na pas avoir .s3Client
Je le mettre dans
Code Offending:.
private void uploadImage(){
AWSConfiguration awsConfig =
new AWSConfiguration(getActivity().getApplicationContext());
AmazonS3Client s3Client = new AmazonS3Client(IdentityManager.getDefaultIdentityManager()
.getCredentialsProvider().getCredentials());
TransferUtility transferUtility =
TransferUtility.builder()
.context(getActivity().getApplicationContext())
.awsConfiguration(awsConfig)
.s3Client(s3Client)
.build();
TransferObserver uploadObserver =
transferUtility.upload(
"sniffer-gps-app/UserDogPhotos/"+userId+photoFile.getName(),
photoFile);
uploadObserver.setTransferListener(new TransferListener() {
@Override
public void onStateChanged(int id, TransferState state) {
if (TransferState.COMPLETED == state) {
//todo something here
Log.d("S3", "done");
nextFragment();
}
}
@Override
public void onProgressChanged(
int id, long bytesCurrent, long bytesTotal) {
Log.d("S3", "ID: "+id+"\r\nBytesCurrent: "+bytesCurrent+"\r\nBytesTotal: "+bytesTotal);
// TODO Auto-generated method stub
}
@Override
public void onError(int id, Exception ex) {
Log.d("S3", ex.toString());
Integer ID = id;
Log.d("S3", ID.toString());
}
});
}
photoFile
est un objet File
.
sniffer-gps-app
est le nom du godet
UserDogPhotos
est un dossier dans le seau
Avez-vous ajouté l'autorisation d'accéder à l'état du réseau? quelque chose comme ceci: https://github.com/awslabs/aws-sdk-android-samples/blob/master/S3TransferUtilitySample/AndroidManifest.xml#L38 –
Je l'ai vraiment fait. Appels à cognito et dynamoDB fonctionnent très bien. – Reid