[Initiation] Fichiers créés avec votre propre application Android (plusieurs fichiers sont générés à la fois) Puisqu'il devenait nécessaire de le gérer sur le serveur et de le recevoir sur un autre terminal, Implémenté rapidement avec S3 depuis Mobile Hub.
[Trébuchant] -Spécifiez s3Client! J'obtiens l'erreur. ・ Accès à AWS S3 refusé J'obtiens l'erreur. -Ne pas interagir avec le serveur pendant le processus de synchronisation! J'obtiens l'erreur. ・ Comment puis-je implémenter le téléchargement de plusieurs fichiers? Non écrit dans le didacticiel. -Bien qu'il n'ait été implémenté qu'une seule fois, une erreur se produit souvent lors de l'appel de s3Client.
Des gens qui avaient des soucis similaires. →AWS S3 Java SDK - Access Denied →Amazon s3 upload multiple files android
[Solution]
class AsyncAWS_upload extends AsyncTask<String, Void, String> {
Activity BaseActivity;
AsyncAWS_upload(Activity activity) {
this.BaseActivity = activity;
}
@Override
protected String doInBackground(String... strings) {
uploadData();
return null;
}
public void uploadData() {
TransferUtility transferUtility =
TransferUtility.builder()
.context(getApplicationContext())
.awsConfiguration(AWSMobileClient.getInstance().getConfiguration())
.s3Client(new AmazonS3Client(AWSMobileClient.getInstance().getCredentialsProvider()))
.build();
TransferObserver uploadObserver =
transferUtility.upload(
"protected/hoge.file",
new File(Environment.getExternalStorageDirectory() + "/hoge.file"));
transferUtility.upload(
"hogehoge_test/hoge.csv",
new File(Environment.getExternalStorageDirectory() + "/hoge.csv"));
uploadObserver.setTransferListener(new TransferListener() {
@Override
public void onStateChanged(int id, TransferState state) {
if (TransferState.COMPLETED == state) {
LOGD("XXXTransferStateonStateChanged", "FINISH");
// Handle a completed upload.
}
}
@Override
public void onProgressChanged(
int id, long bytesCurrent, long bytesTotal) {
LOGD("XXXTransferStateonProgressChanged", "HERE");
// TODO Auto-generated method stub
}
@Override
public void onError(int id, Exception ex) {
// TODO Auto-generated method stub
LOGD("XXXTransferStateonError", String.valueOf(ex));
}
});
// If your upload does not trigger the onStateChanged method inside your
// TransferListener, you can directly check the transfer state as shown here.
if (TransferState.COMPLETED == uploadObserver.getState()) {
}
}
}
-Spécifiez s3Client. (Utilisez le code officiel) ・ Dans build.gradle compile ('com.amazonaws:aws-android-sdk-mobile-client:2.6.+@aar') { transitive = true; } Si vous n'écrivez pas correctement, com.amazonaws.mobile.client.AWSMobileClient N'est pas chargé. -Changer le droit d'accès à la baguette côté hôte. -Créer une sous-classe pour le traitement asynchrone et l'exécuter à partir de la classe principale. -Faire le transferUtility avoir plusieurs informations de téléchargement.
Travailler avec. J'ai sauté la compréhension des détails, je vais donc le compléter dès que je vérifierai le document. Merci pour le document en anglais.
Recommended Posts