【发布时间】:2021-06-15 14:50:48
【问题描述】:
我试图实现的功能是将粘贴文件/文件夹从一个源复制到另一个(相同的容器)。我可以使用与复制文件相同的方法来复制文件夹吗? startcopyblob() 在复制粘贴文件夹时抛出错误。
输入:
newFileName:'新文件夹_copy1' 新文件路径:'603487d1e966a91fd86b6c11/spe9_rs_2021-03-17_17-14-38/输出' oldFilePath:'603487d1e966a91fd86b6c11/spe9_rs_2021-02-23_11-14-41/output/新文件夹'
错误:
code:'CannotVerifyCopySource'
message:'The specified blob does not exist.
name:'StorageError'
requestId:'4a8a76bf-701e-0078-17c8-1b4439000000'
stack:'StorageError: The specified blob does not exist.
statusCode:404
Uncaught Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
代码:
var host = sasurl.substring(0, sasurl.lastIndexOf("/"));
var containerName = sasurl.substring(sasurl.lastIndexOf("/"), sasurl.indexOf("?")).split("/")[1];
var saskey = sasurl.substring(sasurl.indexOf("?"), sasurl.length);
var blobService = storage.createBlobServiceWithSas(host, saskey);
pasteFiles.forEach(elem => {
var storageuri = host + "/" + containerName + "/" + elem["oldFilePath"] + saskey;
var blobName = elem["newFilePath"] + "/" + elem["newFileName"];
blobService.startCopyBlob(storageuri, containerName, blobName, err => {
if (err) {
console.log(err)
return res.status(500).json({
message: 'error',
status: err
})
..... ..
【问题讨论】:
-
能否告诉我 sourceContainer 和 desContainer 是否在同一个存储帐户中以及如何创建 sas 令牌?
-
是的,他们在同一个帐户中。我可以复制文件但对于文件夹,抛出上述错误。
-
是不是直接把一个文件夹复制到另一个容器里?
-
storageuri='://host/container-name/603487d1e966a91fd86b6c11/spe9_rs_2021-02-23_11-14-41/output/new folder?sv=2019-1........ ....3D' blobname='603487d1e966a91fd86b6c11/spe9_rs_2021-03-17_17-14-38/output/new folder_copy1'
-
我用的是node js,,blob服务。
标签: node.js azure-blob-storage