【问题标题】:Copying blob from private blob container to public blob container in Azure将 blob 从私有 blob 容器复制到 Azure 中的公共 blob 容器
【发布时间】:2020-01-12 23:35:30
【问题描述】:

我们在 Azure 存储上有两个 blob 容器。一个是私人的,另一个是公共的。我想让私有容器中的 blob 在我的应用程序中成为可公开访问的。

我正在尝试将 blob 从私有容器复制到公共容器。我在docs - Copy Blob 上找到了这个。但是,我无法成功执行此操作,也找不到详细的解释。

我得到的最后一个错误是关于 Authorization 标头没有正确形成。另一个之前的问题是关于Date 标头不正确,但我已经通过new Date().toUTCString() 而不是new Date() 解决了它。

我在这里错过了什么?

【问题讨论】:

  • 看来你用的是rest api,为什么不用sdk?
  • 我从 Node.js 连接。我会检查是否有它的sdk。
  • sdk是here,你使用sdk内的startCopyBlob方法。

标签: azure azure-blob-storage


【解决方案1】:

我建议你可以使用node.js sdk,然后使用方法startCopyBlob。使用rest api,构建认证需要一些时间,并不容易。

【讨论】:

  • 我现在正在尝试 node.js sdk 和 startCopyBlob 方法。我收到一条错误消息:The value for one of the HTTP headers is not in the correct format.
  • // Copy Blob blobService.startCopyBlob( ${req.user.id}/${sceneId}/${fileName}, AZURE_STORAGE_PUBLIC_CONTAINER_NAME, ${sceneId}/${fileName}, blobResult => { console.log("blobResult: ", blobResult); res.json({ body: { blobResult: blobResult } }); } );
  • 在这里我登录并返回blobResult 以查看一切进展如何。请注意,目标 blob uri 缺少 uer id,因为它是公开的,我们不希望通过对公开请求的响应来公开用户的 id。
  • 我需要在它起作用的第一个参数中提供源 blob 文件的完整 uri。
猜你喜欢
  • 2020-04-09
  • 2016-09-21
  • 2019-03-25
  • 2020-09-05
  • 2021-08-28
  • 2020-03-29
  • 2014-03-30
  • 2014-11-16
相关资源
最近更新 更多