我正在谷歌驱动器上创建文件与服务帐户。NET客户端API。
string[] scopes = new string[] { DriveService.Scope.Drive };
GoogleCredential credential;
using (var stream = new FileStream(Directory.GetCurrentDirectory() + "/Resources/GoogleCredentials.json", FileMode.Open, FileAccess.Read))
{
credential = GoogleCredential.FromStream(stream).CreateScoped(scopes);
}
DriveService drive = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
});
我成功地创建了文件,
var f = drive.Files;
var request = f.Create(new Google.Apis.Drive.v3.Data.File()
{
Name = "Test from ASP.NET Core",
AppProperties = prop,
MimeType = "application/vnd.google-apps.document"
});
var file = await request.ExecuteAsync();
与所有域共享,但我不能将所有权转移到一个域用户。
Permission permission = new Permission()
{
EmailAddress = "user@example.com",
Type = "user",
Domain = "example.com",
Role = "owner"
};
var requestpermission = drive.Permissions.Create(permission, file.Id);
requestpermission.TransferOwnership = true;
var perm = await requestpermission.ExecuteAsync();
我得到错误:
所有权转移只能在同一域的用户之间进行,服务帐户不属于任何域。您最好的选择可能是创建一个服务帐户可以访问的团队驱动器,并执行两个阶段的过程:
files.update
,将addparaments
参数设置为团队驱动器ID。files.update
,将addparents
参数设置为root
(或某个目标文件夹的ID),并将removeparents
参数设置为团队驱动器ID。当试图转移所有权时,我得到以下错误: 下面是我的代码: 该文件夹已成功上传到共享文件夹中的Google Drive(所有者为'email@gmail.com',服务帐户为'editor'),但上传文件的所有者为服务帐户,编辑器为'email@gmail.com'。
我将私有存储库的所有权转移到了一个不同的GitHub帐户。存储库仍然是私有的。当我试图将更改从本地repo推到新的远程存储库时,它会给我带来致命的后果:错误。我已经更改了url、用户名和用户电子邮件。我能做些什么来解决这个问题呢?
我在AWS云服务中设置了一个项目。在那里我使用了EC2实例、AMI、弹性IP、互联网门路、NACL、路由表、安全组、自定义VPC、私有和公共子网、弹性负载平衡、自动伸缩、启动配置、KMS-key、Lambda、RDS Aurora实例、S3桶、简单电子邮件服务、简单队列服务、简单通知服务、云观察日志。现在我的客户要求将所有服务从现有的AWS帐户迁移到新的AWS帐户。
由于permissions API调用不返回所有者的电子邮件和名称,所以我无法通过编程方式查看文件列表并转移所有权。我希望不必添加数据库来查找姓名和电子邮件,并将其与供应API绑定在一起。 谢谢你的任何建议。
文档建议将服务帐户添加到GApps的第三方oauth访问列表必须由域管理员手动完成:https://developers.google.com/drive/delegation#delegate_domain-wide_authority_to_your_service_account 有没有一种方法可以通过身份验证页面来实现这一点?