IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft Azure Discussion :

Vérifier présence d'un container et le créer si absent


Sujet :

Microsoft Azure

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut Vérifier présence d'un container et le créer si absent
    Bonjour à tous

    Etant débutant en Powershell et Azure j'ai écrit ce petit script que je déclenche depuis une base Access et qui marche très bien sauf que :

    1/ Je voudrais qu'il soit capable de vérifier la présence d'un container et dans le cas de son absence le créerait automatiquement puis pointerait dessus au moment de l'envoi du fichier au lieu de recréer le container à chaque fois (comme c'est le cas pour l'instant)...

    2/ Je voudrais qu'une fenêtre de dialogue s'ouvre en lieu et place de la fenêtre PS avec un bouton "Ok" de façon à forcer sa fermeture par l'utilisateur.

    Merci de m'aider à compléter ce code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #Déclaration variables et paramètres
     
    param([string]$DossierFichier,[string]$NomFichier,[string]$NomContainer)
     
    write-host "##################################################################"
    write-host "                                                                  "
    write-host " Veuillez ne pas fermer la fenêtre avant la fin du télechargement "
    write-host "                                                                  "
    write-host "##################################################################"
     
     
    # Données compte storage et clé
     
     
    $StorageAccountName = "gnagnagna"
    $StorageAccountKey = "maclésecrète"
     
    #Spécifier le container :
     
    $ContainerName = $NomContainer
     
    New-AzureStorageContainer -Name $ContainerName
     
    #Créer un context
     
    $ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName `
             -StorageAccountKey $StorageAccountKey 
     
     
    #Chemin du dossier contenant les fichiers :
     
    $localFileDirectory = $DossierFichier
     
    #Envoi fichier vers le serveur :
     
    $BlobName = $NomFichier
     
    $localFile = $localFileDirectory + $blobname
     
    New-AzureStorageContainer -name $ContainerName -context $ctx -permission Blob
     
    Set-AzureStorageBlobContent -File $localFile -Container $ContainerName -Blob $BlobName -Context $ctx 
     
    #Récupérer URI du fichier dans fichier txt :
     
    $pathServeur=(Get-AzureStorageBlob -blob $blobname -Container $containername -Context $ctx).ICloudBlob.uri.AbsoluteUri
     
    $pathServeur| Out-File  -filepath c:\gnagnagna\pathserveur.txt -encoding ascii
     
    write-host "le fichier a été envoyé avec succès, voici le chemin sur le serveur : "
    write-host $pathserveur
    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par clickandgo Voir le message
    1/ Je voudrais qu'il soit capable de vérifier la présence d'un container et dans le cas de son absence le créerait automatiquement puis pointerait dessus au moment de l'envoi du fichier au lieu de recréer le container à chaque fois (comme c'est le cas pour l'instant)...
    Au lieu de faire :
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    New-AzureStorageContainer -Name $ContainerName
    Tu peux faire :
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $container = Get-AzureStorageContainer | Where-Object { $_.Name -eq "mycontainer" }
    Ensuite tu verifies ce qui est renvoye et tu decides s'il faut le creer (appeler New-AzureStorageContainer) ou pas.

    Citation Envoyé par clickandgo Voir le message
    2/ Je voudrais qu'une fenêtre de dialogue s'ouvre en lieu et place de la fenêtre PS avec un bouton "Ok" de façon à forcer sa fermeture par l'utilisateur.
    Si tu utilises Powershell 3.0+ c'est faisable, voici un exemple : Creating a Custom Input Box.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Merci pour ta réponse mais je ne suis pas assez calé pour trouver la logique par moi même :

    D'après ce que j'ai vu sur des sites en Anglais il faut utiliser Try-Catch pour tester la présence du container et ensuite créer ou pas le nouveau container puis pointer sur celui-ci avant d'envoyer les fichiers ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $containerExiste = $false
    while(!$containerExiste) {
        Try {  
            Write-Host "Try::New-AzureStorageContainer"
            New-AzureStorageContainer -Name $storageContainerName -Permission Off -Context $context -Verbose -ErrorAction Stop
            $containerExiste = $true
        } catch [Microsoft.WindowsAzure.Storage.StorageException] {
            ...
        }
    }
    J'aurai besoin d'aide à la mise en forme du code pour ce qui est du cas ou le container existe et que l'on puisse envoyer un fichier dedans, car là d'après ce que je comprends on créé uniquement le container après avoir vérifié sa présence ...

    Je ne suis pas un habitué de la méthode Try-Catch sous Powershell ...

    Merci

Discussions similaires

  1. [E-03] Vérifier présence controle dans userform
    Par allergique dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2008, 17h58
  2. Comment vérifier si un folder existe et le créer si pas trouvé ?
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/06/2008, 22h30
  3. Réponses: 6
    Dernier message: 20/08/2007, 16h14
  4. [C# 2.0] vérifier présence d'une dll
    Par SesechXP dans le forum Windows Forms
    Réponses: 7
    Dernier message: 28/08/2006, 11h54
  5. [C++/MFC]Comment vérifier présence du Framework DotNet?
    Par Seb.26 dans le forum Framework .NET
    Réponses: 9
    Dernier message: 06/01/2006, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo