2
votes

Quelqu'un a-t-il utilisé avec succès azure-storage pour le stockage d'objets blob dans un projet natif de réaction?

https://www.npmjs.com/package/azure-storage

Sur la base de ce projet ou potentiellement d'un autre, est-ce que quelqu'un a utilisé un package JavaScript pour les téléchargements de stockage blob Azure?

Je ne poste ici que car mes recherches ont donné peu de résultats, donc je pensais qu'une conversation potentielle sur le manque de support natif de réaction d'Azure pourrait découvrir des solutions de contournement.

Je continuerai d'essayer le package listé et fournirai des résultats en cas de succès, donc comme toujours merci pour toute réponse et direction car c'est toujours très apprécié!

Modifier: Cela semble intéressant, même si je ne l'ai pas examiné en détail: https://www.npmjs.com/package/azure-blob-storage


1 commentaires

Juste pour clarifier: avez-vous fait référence à la suggestion mentionnée dans le lien ci-dessous: github.com/joltup/... Vous pouvez utiliser la bibliothèque cliente JavaScript Azure Storage pour télécharger directement la photo du client vers le stockage Azure: github.com/Azure/azure-storage-node/tree/master/browser . Consultez l'exemple ici: github.com / Azure / azure-storage-node / blob / master / browser / samp‌ les /…


3 Réponses :


1
votes

Oui, j'ai utilisé.

 const localUri = __IS_IOS ? file.uri.replace('file://', '') : file.uri;
 const assetPath = `${_trimEnd(sasContainerUri, '/')}/${container}/${uploadPath}`;

  await RNFetchBlob.fetch('PUT', `${assetPath}?${sasToken}`, {
    'x-ms-blob-type': 'BlockBlob',
    'content-type': 'application/octet-stream',
    'x-ms-blob-content-type': file.type,
  }, RNFetchBlob.wrap(localUri));

return assetPath


2 commentaires

Pouvez-vous démontrer une solution plus détaillée? J'obtiens "Cette demande n'est pas autorisée à effectuer cette opération." Erreur.


J'obtiens le code d'erreur 409 L'opération n'est pas autorisée dans l'état de l'entité. Toute solution pour cela @Nikhil, merci d'avance



2
votes
npm install react-native-azure-blob-storage --save
https://github.com/PosSoolutions/react-native-azure-blob-storage

0 commentaires

2
votes

Au cas où quelqu'un aurait du mal à le faire fonctionner avec d'autres solutions proposées ici. En voici un autre utilisant rn-fetch-blob . Cette solution permet également d'enregistrer un objet blob avec un nom personnalisé, par exemple customBlobName

import RNFetchBlob from "rn-fetch-blob";

const sasContainerUri = "https://accountname.blob.core.windows.net";

const container = "minecontainer";

const sasToken =
  "sv=2019-02-02&ss=b&srt=sco&sp=rwdlac&se=2020-05-30T22:48:22Z&st=2020-05-25T14:48:22Z&spr=https&sig=otherpartofSAStoken"; // you may need to play with other html verbs in this string e.g., `sp`, `ss` e.t.c.

const localUri = Constants.platform.ios
      ? file.uri.replace("file://", "/")
      : file.uri;

const assetPath = `${sasContainerUri}/${container}/${customBlobName}`;

    try {
      await RNFetchBlob.fetch(
        "PUT",
        `${assetPath}?${sasToken}`,
        {
          "x-ms-blob-type": "BlockBlob",
          "content-type": "application/octet-stream",
          "x-ms-blob-content-type": file.type
        },
        RNFetchBlob.wrap(localUri)
      );
    } catch (e) {
      console.log("Error at saving image into Azure Storage", e);
    }


1 commentaires

Je reçois une erreur d'authentification. Aucun conseil? Le serveur n'a pas pu authentifier la demande. Assurez-vous que la valeur de l'en-tête d'autorisation est correctement formée, y compris la signature.