【发布时间】:2017-07-19 17:08:35
【问题描述】:
我正在开发将文件上传到 Google Drive 的 C# Windows 应用程序。我需要确定已上传到 Google Drive 上的文件,以防出现任何故障。
我想避免出现这样的情况,即文件开始上传,但网络中断,只有部分文件被上传。
我如何比较那些传输到 Google 云端硬盘的文件没有任何问题。
下面是我用来将文件上传到 Google Drive 的代码。
public static File uploadFile(DriveService _service, string _uploadFile, string _parent)
{
if (System.IO.File.Exists(_uploadFile))
{
File body = new File();
body.Title = System.IO.Path.GetFileName(_uploadFile);
body.Description = "File uploaded by Diamto Drive Sample";
body.MimeType = GetMimeType(_uploadFile);
body.Parents = new List<ParentReference>() { new ParentReference() { Id = _parent } };
// File's content.
byte[] byteArray = System.IO.File.ReadAllBytes(_uploadFile);
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
try
{
FilesResource.InsertMediaUpload request = _service.Files.Insert(body, stream, GetMimeType(_uploadFile));
request.Upload();
Google.Apis.Drive.v2.Data.File file = request.ResponseBody;
Google.Apis.Drive.v2.Data.Permission newPermission = new Google.Apis.Drive.v2.Data.Permission();
newPermission.Value = "123@gmail.com";
newPermission.Type = "anyone";
newPermission.Role = "writer";
_service.Permissions.Insert(newPermission, file.Id).Execute();
return request.ResponseBody;
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
return null;
}
}
else
{
Console.WriteLine("File does not exist: " + _uploadFile);
return null;
}
}
【问题讨论】:
-
如果失败,它将返回 HTTP 409,否则客户端会出现异常。您可以使用预生成的 ID 重试上传,请参阅link 了解更多详细信息。
-
@Berkays 感谢您的提示。但是现在当文件成功上传时,我也将响应正文设为 NULL。所以我永远不会知道id。这就是为什么我想手动检查。
标签: c# google-drive-api