【发布时间】:2015-02-25 12:09:00
【问题描述】:
我正在尝试使用服务帐户将图像文件上传到谷歌驱动器。
在服务帐户中,我按照以下步骤操作:
1) 在开发者控制台上创建新项目
2) 在 APIs & auth 中打开驱动器 api。
3) 在服务帐户下生成新的客户端 ID
4) 还生成了 P12 密钥。
之后,我编写了以下代码,用于使用 SERVICE ACCOUNT 在谷歌驱动器上上传图像:
X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(SERVICE_ACCOUNT_EMAIL)
{
Scopes = new[] { DriveService.Scope.DriveReadonly }
}.FromCertificate(certificate));
// Create the service.
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Drive API Sample",
});
File body = new File();
body.Title = "My Sample Image";
body.Description = "Image";
body.MimeType = "image/jpeg";
byte[] byteArray = System.IO.File.ReadAllBytes("image.jpeg");
System.IO.File.Delete("image.jpeg");
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "image/jpeg");
request.Upload();
File file = request.ResponseBody;
此处上传失败,当我尝试调试代码时发现“request.ResponseBody”为空。
有人可以帮我吗?
【问题讨论】:
-
您的代码在哪里显示“文件文件 = request.ResponseBody;”,文件包含什么?
标签: c# .net google-drive-api google-api-dotnet-client