我编程到我的API在我的应用程序中有一个服务帐户,它工作正常,所有连接,上传,下载和删除东西,但当我以前使用用户服务时,所有文件都转到我的个人驱动器,现在它走到哪里,我认为它归于Google云平台... 问题是,我在那里没有任何帐户,因为你需要付钱才能使用它,那么,有没有人知道所有这些文件的去向?
这里是我用于进行连接调用的代码
public static DriveService Connection(string path, string username, string p12Path)
{
var certificate = new X509Certificate2(p12Path, "XXXXXXXX", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer("g service account")
{
Scopes = Scopes
}.FromCertificate(certificate));
DriveService service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName
});
return service;
}
这里是我用来上传文件的方法。
[Authorize]
public static Google.Apis.Drive.v3.Data.File Upload(DriveService service, string uploadFile, string name)
{
var body = new Google.Apis.Drive.v3.Data.File();
body.Name = name;
body.MimeType = GetMimeType(uploadFile);
byte[] byteArray = System.IO.File.ReadAllBytes(uploadFile);
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
FilesResource.CreateMediaUpload request = service.Files.Create(body, stream, GetMimeType(uploadFile));
request.Upload();
return request.ResponseBody;
}
那么,任何人都可以帮助我吗?
答案 0 :(得分:1)
如此thread中所述,代码是相同的,如果您使用的是Oauth2或服务帐户,则没有区别。您可以查看此tutorial。同样基于此related post,如果您希望上传的文件位于您自己的云端硬盘内容中,则需要使用自己的帐户凭据来访问云端硬盘SDK。这不需要涉及用户交互。您只需要获取一次刷新令牌,然后使用该令牌为Drive生成访问令牌。希望这有帮助!