Azure Blob存储StartCopy,源指向云转换

Azure Blob存储StartCopy,源指向云转换,azure,azure-storage,azure-storage-blobs,internal-server-error,Azure,Azure Storage,Azure Storage Blobs,Internal Server Error,我有Cloud Convert转换视频,当转换完成后,我告诉AzureBLOB存储使用方法CloudBlockBlob.StartCoyAsync从转换输出URL下载文件 我必须说,这曾经奏效。直到这个过程开始失败,我才更改一行代码 现在,每当Azure尝试从Cloud Convert下载时,它都会失败,并显示消息500 InternalServerError“Copy failed.”。如果我在浏览器中复制下载URL,它会正常下载文件。该过程与存储仿真器配合使用 我的问题是,还有其他人有同样的

我有Cloud Convert转换视频,当转换完成后,我告诉AzureBLOB存储使用方法
CloudBlockBlob.StartCoyAsync
从转换输出URL下载文件

我必须说,这曾经奏效。直到这个过程开始失败,我才更改一行代码

现在,每当Azure尝试从Cloud Convert下载时,它都会失败,并显示消息
500 InternalServerError“Copy failed.”
。如果我在浏览器中复制下载URL,它会正常下载文件。该过程与存储仿真器配合使用

我的问题是,还有其他人有同样的问题吗?我该如何解决这个问题?我是否需要自己下载该文件并将其上载到Azure Blob存储

但一旦我检查CopyState,它就会显示失败,并显示消息InternalServerError“Copy failed”

在测试过程中,我没有遇到这个错误。请尝试调试代码并捕获详细错误,以查看此错误是在代码中引发的还是在服务器端引发的

我必须说,这曾经奏效。直到这个过程开始失败,我才更改一行代码

根据您的描述,我在Cloud Convert中注册了一个帐户,并将.pdf文件转换为.docx文件。然后我在我这边测试了它,得到了与Gaurav所说的相同的结果,即blob可以成功创建,但是blob的大小是0字节。我认为CloudConvert可能会做一些调整。由于您可以在浏览器中下载该文件,因此您可以按照下面的代码作为替代方法来实现您的目的

//pdf-to-docx.docx
url=”https://host123d1qm.cloudconvert.com/download/~7-9Eybedlqycoh41onw6h1rpfy”;
使用(HttpClient=new HttpClient())
{   
//通过CloudConvert提供的URL下载该文件
var response=wait client.GetAsync(url);
//定义块blob对象
string filename=response.Content.Headers.ContentDisposition.filename.Trim(新字符[]{'''});
string contentType=response.Content.Headers.contentType.ToString();
CloudBlockBlob blockBlob=container.getBlockBlockBlobReference(文件名);
blockBlob.Properties.ContentType=ContentType;
//上传blob
wait blockBlob.UploadFromStreamAsync(wait response.Content.ReadAsStreamAsync());
}
但一旦我检查CopyState,它就会显示失败,并显示消息InternalServerError“Copy failed”

在我的测试过程中,我没有遇到此错误。请尝试调试您的代码并捕获详细错误,以查看此错误是在您的代码还是服务器端引发的

我必须说,这曾经是有效的。直到这个过程开始失败,我才改变过一行代码

根据您的描述,我在Cloud Convert中注册了一个帐户,并将一个.pdf文件转换为.docx文件。然后我对其进行了测试,结果与Gaurav所说的blob可以成功创建相同,但blob的大小为0字节。我假设Cloud Convert可能会进行一些调整。因为您可以下载在浏览器中创建文件,然后您可以按照下面的代码作为替代方法来实现您的目的

//pdf-to-docx.docx
url=”https://host123d1qm.cloudconvert.com/download/~7-9Eybedlqycoh41onw6h1rpfy”;
使用(HttpClient=new HttpClient())
{   
//通过CloudConvert提供的URL下载该文件
var response=wait client.GetAsync(url);
//定义块blob对象
string filename=response.Content.Headers.ContentDisposition.filename.Trim(新字符[]{'''});
string contentType=response.Content.Headers.contentType.ToString();
CloudBlockBlob blockBlob=container.getBlockBlockBlobReference(文件名);
blockBlob.Properties.ContentType=ContentType;
//上传blob
wait blockBlob.UploadFromStreamAsync(wait response.Content.ReadAsStreamAsync());
}

您是否考虑过使用Azure存储数据移动库:。具体请参见TransferManager.CopySync()。另一件需要研究的事情是更改目标容器上的访问类型。

您是否研究过使用Azure存储数据移动库:。具体请参见TransferManager.CopySync()。另一件需要研究的事情是更改目标容器上的访问类型。

您能通过Fiddler之类的工具跟踪请求/响应吗?是否可以共享一个我们可以尝试的URL?@GauravMantri Azure存储是一项服务。我没有访问服务器的权限。我可以用模拟器来做,但是模拟器可以工作。我可以向您发送我尝试下载的文件的URL,但cloud convert的任何输出URL似乎都会有相同的结果。您可以向我发送URL吗?我将尝试模拟相同的情况。@GauravMantri它也适用于HTTPI。我能够成功地执行复制操作,但我注意到blob的文件大小为0字节。进一步检查后,我发现您共享的链接具有
内容配置
属性集。您可以尝试删除源文件上的
内容处置
属性值吗?您可以通过Fiddler之类的工具跟踪请求/响应吗?是否可以共享一个我们可以尝试的URL?@GauravMantri Azure存储是一项服务。我没有访问服务器的权限。我可以用模拟器来做,但是模拟器可以工作。我可以向您发送我尝试下载的文件的URL,但cloud convert的任何输出URL似乎都会有相同的结果。您可以向我发送URL吗?我将尝试模拟相同的情况。@GauravMantri它也适用于HTTPI。我能够成功地执行复制操作,但我注意到blob的文件大小为0字节。进一步检查后,我发现您共享的链接具有
内容配置
属性集。您可以尝试删除
内容配置吗