Android-Télécharger des fichiers image vers Azure Blob Storage en Java

Auto-introduction

Je suis Fumiya Kume, étudiante de deuxième année à l'Université Daido. Je joue avec Xamarin.

Qu'est-ce que le stockage Blob Azure?

Azure Blob Storage offre une capacité par dirigeant et une évolutivité extrêmement élevée, ce qui permet de placer facilement et à moindre coût des centaines à des milliards d'objets dans le niveau chaud ou froid, en fonction de la fréquence à laquelle vous devez accéder aux données. Peut être stocké. Vous pouvez stocker toutes sortes de données non structurées, y compris des images, des vidéos, de l'audio et des documents.

Cité de https://azure.microsoft.com/ja-jp/services/storage/blobs/

C'est exact, mais c'est difficile à lire, alors je vais vous expliquer un peu. En termes simples, c'est un stockage qui peut stocker n'importe quel fichier, qu'il s'agisse d'images, de texte ou de vidéos.

Si vous l'utilisez pour sauvegarder les données postées par les utilisateurs sur SNS etc., il sera plus facile à comprendre si vous pouvez l'imaginer.

Le coût de l'enregistrement des fichiers et du transfert depuis le cloud est

--Enregistrer le fichier: jusqu'à 1 To correspond à 2,45 ¥ / Go --Transfert depuis le cloud: 0,37 ¥ pour 100 000 fois

C'est comme ça. Je pense que c'est bon marché.

Référence: Azure Storage Price

Que faire cette fois

Téléchargez des images d'Android vers Azure Blob Storage.

Préparation

Ce que j'ai fait

1. Créez un projet Android

Je pense que ce n'est pas grave si vous choisissez le modèle d'activité vide.

studio64_2017-03-31_23-08-29[1].png

2. Placez un bouton

// Puisqu'il s'agit d'une partie basique, le code est omis

L'identifiant doit être ** button **.

3. Préparez-vous du côté Azure

Accéder au portail Azure

chrome_2017-03-31_23-11-25[1].png

Créer un stockage d'objets blob

Cliquez sur le bouton ** + ** en haut à droite et entrez ** Blob ** dans la zone de recherche qui apparaît pour suggérer Azure Blob Storage. Cliquez dessus.

chrome_2017-03-31_23-12-23[1].png

Continuer la configuration du stockage Blob Azure

Donnez-lui un nom unique pour tous les utilisateurs d'Azure. Donnez au groupe de ressources un nom unique pour chaque utilisateur individuel. Les abonnements ne peuvent pas être créés avec les abonnements fournis par Imagine. Vous pouvez donc également participer à des événements sponsorisés par MSP, etc. ** Azure Pass ** Veuillez utiliser etc.

Enfin, cliquez sur ** Épingler au tableau de bord ** et cliquez sur Terminer pour terminer le réglage.

chrome_2017-03-31_23-16-07[1].png

Azure Blob Storage créé

Je pense que l'écran suivant va s'ouvrir.

chrome_2017-03-31_23-21-54[1].png

Ouvrons la partie ** Blob ** de la catégorie de service

chrome_2017-03-31_23-35-49[1].png

chrome_2017-04-01_00-05-23[1].png

Vous avez peut-être reçu un message indiquant que le conteneur n'a pas encore été créé.

Conteneur ... à quoi ça ressemble?

Voyons maintenant comment fonctionne le stockage Blob Azure.

blob1[1].png

Cité de Utilisation du stockage Blob Azure avec .NET

Cela peut être difficile à comprendre à première vue, mais pourquoi ne pas le remplacer par la terminologie informatique à laquelle vous êtes habitué?

Compte = clé USB Container = Dossier dans la mémoire USB BLOB = Collection d'images et collection de vidéos placées dans le dossier

J'ai l'impression que tu comprends, non?

Créer un conteneur pour Azure Blob

Créez un conteneur à partir du bouton en haut à gauche.

chrome_2017-04-01_00-38-25[1].png

Une chose à garder à l'esprit lors de la dénomination des conteneurs de stockage Blob Azure, ils doivent être tous en minuscules

En outre, le type d'accès doit être Blob

Azure est maintenant prêt.

4. Création d'une logique pour se connecter à Azure Blob Storage du côté Android

Ouvrez ** MainActivity.java ** sur Android. Entrez ensuite le code ci-dessous


//importation omise

public class MainActivity extends AppCompatActivity {

    public Button Button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button = (Button) findViewById(R.id.button);
        Button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Si vous exécutez un traitement lourd en utilisant le réseau dans le thread de l'interface utilisateur, cela causera des problèmes, alors exécutez-le dans un autre thread
                AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
                    @Override
                    protected Void doInBackground(Void... params) {
                        //Chaîne pour la connexion à Azure Blob Storage, Cho important. C'est aussi important que le mot de passe du compte root.
                        String storageConnectionString = "Connection String";
                        //Obtenez le chemin vers DCIM
                        File dir = new File(Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_DCIM);
                        //Définissez le chemin d'accès au fichier image sur DCIM
                        File file = new File(dir.getAbsolutePath() + "/image.jpeg ");
                        //Sortie du journal pour vérifier si le chemin vers l'image correcte est pris
                        Log.d("Celui qui affiche l'image", file.getPath());
                        try {
                            //Commencez à vous connecter au compte de stockage Azure
                            CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

                            //Obtenir un client pour se connecter à Blob dans un compte de stockage Azure
                            CloudBlobClient blobClient = storageAccount.createCloudBlobClient();

                            //Récupérez le conteneur de Blob, spécifiez le conteneur avec une chaîne
                            CloudBlobContainer container = blobClient.getContainerReference("mspjp");

                            //La chaîne de caractères passée dans l'argument de getBlockBlobReference devient le nom de fichier enregistré dans Blob.
                            //Si un fichier du même nom existe déjà, il sera écrasé.
                            CloudBlockBlob blob = container.getBlockBlobReference("myimage.jpg ");
                            //Terminer la fonction si le fichier n'existe pas
                            if (!file.exists()) return null;
                            //Télécharger vers Azure Blob Storage
                            blob.upload(new java.io.FileInputStream(file), filelength());
                        } catch (Exception e) {
                            //Crache des traces de pile pour analyse si une erreur se produit
                            e.printStackTrace();
                        }
                        return null;
                    }
                };

                try {
                    //Exécuter dans un thread séparé
                    task.execute();
                } catch (Exception e) {
                    Handler handler = new Handler();
                    handler.post(new Runnable() {
                        //Je souhaite afficher un message d'erreur sur le toast lorsqu'une erreur se produit,
                        //S'il ne s'agit pas d'un thread d'interface utilisateur, le toast ne peut pas être affiché, il s'exécute donc dans le thread d'interface utilisateur
                        @Override
                        public void run() {
                            Toast.makeText(MainActivity.this, "Faild: Upload blob storage", Toast.LENGTH_LONG).show();
                        }
                    });
                }
            }
        });

    }
}

5. Placement des images pour le téléchargement

Connectez Android à votre PC, ouvrez le stockage externe d'Android et placez le fichier image ** image.jpeg ** dans le dossier ** DCIM **.

6. Définition de storageConnectionString

Le storageConnectionString est différent pour chaque utilisateur (compte de stockage), alors allons-y maintenant.

Tout d'abord, ouvrez l'écran Stockage d'objets blob Azure que vous avez créé précédemment.

Cliquez sur la partie intitulée Access Key

chrome_2017-04-01_01-03-35[1].png

Réécrivez le code pour copier la chaîne de connexion pour ** key1 ** et attribuez-le à ** storageConnectionString **

chrome_2017-04-01_01-04-31[1].png

Courir

Maintenant que le codage est terminé, essayez de l'exécuter.

Après l'exécution, ouvrez le conteneur Azure Blob Storage et vous verrez les images téléchargées.

chrome_2017-04-01_01-08-23[1].png

Impressions

--Java amusant «Comme Azure a tous les documents, j'ai senti que c'était facile à résoudre même si je ne comprenais pas.

Matériel de référence

Recommended Posts

Android-Télécharger des fichiers image vers Azure Blob Storage en Java
Manipuler le stockage Blob Azure en Java (jeton SAS, manipulation de fichiers)
Java-Comment comparer des fichiers image en binaire
Convertir des fichiers SVG en fichiers PNG en Java
Charger et télécharger des notes en Java sur le stockage Azure
Fonctions Azure en Java
Comment entrer / sortir des fichiers mainframe IBM en Java?
Lire des fichiers binaires en Java 1
Créer des fonctions Azure en Java
Lire des fichiers binaires dans Java 2
Ajouter du texte à BlobItem avec Azure BlobStorage SDK Java V8
Lisez facilement les fichiers texte en Java (Java 11 et Java 7)
Multithread pour s'adapter au modèle [Java]
Comment désassembler un fichier de classe Java
Exécuter des applications Java dans Azure Batch
Comment apprendre JAVA en 7 jours
Enregistrer la sortie dans un fichier en Java
Comment décompiler un fichier de classe Java
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Essayez d'implémenter Yuma en Java
Comment concaténer des chaînes avec Java
Comment implémenter le filtre de Kalman par Java
Essayez de résoudre Project Euler en Java
Facile à créer Slack Bot avec Java
Référence Java à comprendre dans la figure
Essayez d'implémenter l'ajout n-aire en Java
* Android * Sauvegarde / chargement de fichiers sur le stockage interne
[Java] Comment sortir et écrire des fichiers!
Remplacez List <Optional <T >> par Optional <List <T >> en Java
Comment appliquer les conventions de codage en Java
Comment intégrer Janus Graph dans Java
Lecture de fichiers RAW, WAV, MP3 en Java
Ajouter un document à Azure Search Service (Java)
Comment obtenir la date avec Java
Ajouter des notes de bas de page aux documents Word en Java
Création d'applications Web Java sur Azure Web Apps
[Java Bronze] 5 problèmes à garder à l'esprit
Exemple pour décompresser le fichier gz en Java
De Java à C et de C à Java dans Android Studio
Lire et écrire des fichiers gzip en Java
Étapes pour enregistrer un fichier Java sur GitHub
Ajouter l'attribut SameSite au cookie en Java
Essayez d'ajouter du texte à une image avec Scala en utilisant la bibliothèque standard de Java
Upsert du SDK Java vers Azure Cosmos DB
Deux façons de démarrer un thread en Java + @
[Rails] Différentes manières d'écrire dans des fichiers de départ
Je souhaite envoyer un e-mail en Java.
Déployez des applications Web Java sur Azure avec maven
CORBA semble avoir été supprimé dans Java SE 11. .. ..
Code pour échapper aux chaînes JSON en Java
Essayez de créer un babillard en Java
Comment obtenir une classe depuis Element en Java
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment masquer les champs nuls en réponse en Java
Bibliothèque "OSHI" pour acquérir des informations système avec Java
J'ai essayé de sortir quatre-vingt-dix-neuf en Java