我想使用Google Drive v3 C#SDK恢复中断的可恢复上传。 我想要这个的原因是在Restful Web API中创建可恢复的上传。 此RestAPI中有google drive api实例,因此这会将块数据从客户端程序转发到Google驱动器。 如您所知,客户端程序无法一次将整个文件数据上传到Web API,因此我们需要恢复中断的可恢复上传。
所以我的计划就在这里。
为此,我制作了测试代码,但它根本不起作用。
var uploadStream = new System.IO.FileStream(UploadFileName, System.IO.FileMode.Open,
System.IO.FileAccess.Read);
var insert = service.Files.Create(new Google.Apis.Drive.v3.Data.File { Name = title }, uploadStream, ContentType);
Uri uploadUri = insert.InitiateSessionAsync().Result;
int chunk_size = ResumableUpload.MinimumChunkSize;
while (uploadStream.Length != uploadStream.Position)
{
byte[] temp = new byte[chunk_size];
uploadStream.Read(temp, 0, temp.Length);
MemoryStream stream = new MemoryStream(temp);
ResumableUpload resume_uploader = ResumableUpload.CreateFromUploadUri(uploadUri, stream);
resume_uploader.ChunkSize = chunk_size;
IUploadProgress ss = resume_uploader.Resume();
Console.WriteLine("Uploaded " + ss.BytesSent.ToString());
}
坦率地说,我希望收到308 Resume Incomplete Code,但结果却不同。
"无效的请求。根据Content-Range标头,上传的最终大小为262144字节。这与先前请求中指定的1193188字节的预期大小不匹配。"
这意味着我需要创建使用Google Drive C#SDK恢复中断的可恢复上传的代码。
任何人都可以帮助我?
答案 0 :(得分:2)
最后,我解决了问题。确切的代码如下。实际上,我在Google上找不到任何源代码,所以我很伤心。每个想要解决此问题的开发人员都请使用我的代码。希望你好好的。 :)
man get_string