[JAVA] [AWS / S3] Wie lädt man schließlich mehrere Dateien hoch?

[Einleitung] Mit Ihrer eigenen Android-App erstellte Dateien (mehrere Dateien werden gleichzeitig generiert) Da es notwendig wurde, es auf dem Server zu verwalten und auf einem anderen Terminal zu empfangen, Schnell implementiert mit S3 von Mobile Hub.

[Stolpern] -Spezifizieren Sie s3Client! Ich bekomme den Fehler. ・ AWS S3-Zugriff verweigert Ich bekomme den Fehler.

Menschen, die ähnliche Sorgen hatten. →AWS S3 Java SDK - Access DeniedAmazon s3 upload multiple files android

[Lösung]

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()) {
        }
    }
}

Arbeiten mit. Ich habe das Verständnis der Details übersprungen und werde es ergänzen, sobald ich das Dokument überprüfe. Vielen Dank für das englische Dokument.

Recommended Posts

[AWS / S3] Wie lädt man schließlich mehrere Dateien hoch?
[Rails] So laden Sie Bilder mit Carrierwave und Fog-Aws in AWS S3 hoch
[Rails] So laden Sie Bilder mit refile und refile-s3 in AWS S3 hoch
Wie schreibt man den ternären Operator (? :)
Code zum Löschen aller Dateien mit dem angegebenen Präfix in AWS S3 (Java)
Verwenden Sie doch die for-Anweisung? Verwenden Sie die while-Anweisung? Ordnungsgemäße Verwendung von for-Anweisung und while-Anweisung