有没有人在React Native项目中成功地将Azure存储用于Blob存储?

时间:2019-04-23 13:16:31

标签: react-native azure-storage azure-blob-storage

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

基于该项目或潜在的其他项目,是否有人使用过任何JavaScript软件包进行azure blob存储上传?

我只在这里发表文章,因为我的研究收效甚微,因此尽管我可能会就缺乏因天蓝色而无法提供本机支持的话题进行讨论,但可能会发现一些解决方法。

如果成功,我将继续尝试列出的软件包并提供结果,因此一如既往地感谢您的任何回复和指导,

编辑: 这看起来很有趣,尽管我没有详细研究它: https://www.npmjs.com/package/azure-blob-storage

3 个答案:

答案 0 :(得分:2)

npm install react-native-azure-blob-storage --save

https://github.com/PosSoolutions/react-native-azure-blob-storage

答案 1 :(得分:1)

以防有人在努力使其与此处提出的其他解决方案一起使用。这是使用rn-fetch-blob的另一个。此解决方案还允许保存具有自定义名称(例如customBlobName

)的Blob
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);
    }

答案 2 :(得分:0)

是的,我曾经使用过。

 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