web-dev-qa-db-fra.com

télécharger des fichiers vers le stockage de fichiers Azure à partir de l'application Web à l'aide de l'api de repos

Je ne connais pas Azure, ni l'api de repos, ni le c #, mais de toute façon je dois le faire et je n'ai pas trouvé un bon document pour me guider ...

il y a donc cette application web, actuellement un formulaire web, pas mvc ... qui va être hébergée sur la plateforme Azure,

et une fonction principale de cette application Web est de télécharger des fichiers utilisateur vers Azure File Storage.

Les fichiers peuvent être au format pdf ou mp3, etc., pas de simples textes ou flux de données ou saisie de données.

On me dit d'utiliser Azure REST pour télécharger des fichiers, mais je ne le connais vraiment pas et je ne trouve pas un bon exemple ou un didacticiel ou une vidéo en ligne. Les documents actuels de Microsoft se lisent comme suit: ?????? tome.

Actuellement, je viens de télécharger dans un dossier local, donc le code ressemble à: FileUpload1.PostedFile.SaveAs(Server.MapPath("fileupload\\" + FileUpload1.FileName)); en C #;

Par où commencer? Je pense que je suis censé ajouter un StorageConnectionString qui ressemble à DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=yyy, que j'ai déjà.

Et puis je devrais écrire du code comme "post" en c #? Cette partie, je ne la connais vraiment pas. Est-ce une question stupide?

Je suis vraiment un débutant et je suis reconnaissant pour toute aide, merci les gars (T. T)

13
AprilX

Azure fournit une bibliothèque de nugets que vous pouvez utiliser pour télécharger et effectuer d'autres types d'activités de "gestion de fichiers" sur Azure File Storage.

La bibliothèque s'appelle: WindowsAzure.Storage

Voici les bases pour démarrer:

//Connect to Azure
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

// Create a reference to the file client.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();      

// Create a reference to the Azure path
CloudFileDirectory cloudFileDirectory = GetCloudFileShare().GetRootDirectoryReference().GetDirectoryReference(path);

//Create a reference to the filename that you will be uploading
CloudFile cloudFile = cloudSubDirectory.GetFileReference(fileName);

//Open a stream from a local file.
Stream fileStream= File.OpenRead(localfile);

//Upload the file to Azure.
await cloudFile.UploadFromStreamAsync(fileStream);
fileStream.Dispose();

Plus de liens et d'informations ici (notez que vous pouvez faire défiler vers le bas pour des exemples): https://Azure.Microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/

23
Gary Holland

Ce morceau de code est basé sur la réponse que j'ai obtenue de Gary Holland ci-dessus. J'espère que d'autres en bénéficieront. Je ne suis pas bon en programmation, j'espère que le code semble correct.

if (FileUpload1.HasFile)
    {
        //Connect to Azure
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

        // Create a reference to the file client.
        CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

        // Get a reference to the file share we created previously.
        CloudFileShare share = fileClient.GetShareReference("yourfilesharename");

        if (share.Exists())
        {


            // Generate a SAS for a file in the share
            CloudFileDirectory rootDir = share.GetRootDirectoryReference();
            CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("folderthatyouuploadto");
            CloudFile file = sampleDir.GetFileReference(FileUpload1.FileName);

            Stream fileStream = FileUpload1.PostedFile.InputStream;

            file.UploadFromStream(fileStream);
            fileStream.Dispose();


        }
    }
8
AprilX