서비스 계정 으로 .NET 클라이언트 API 로 Google 드라이브에 파일을 만들고 있습니다.
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 = "[email protected]",
Type = "user",
Domain = "example.com",
Role = "owner"
};
var requestpermission = drive.Permissions.Create(permission, file.Id);
requestpermission.TransferOwnership = true;
var perm = await requestpermission.ExecuteAsync();
오류가 발생합니다.
지정된 도메인이 유효하지 않거나 지정된 권한 유형에 적용 할 수 없습니다.
이 링크를 찾았 지만 p12 cert 파일을 사용하는 것은 권장되지 않습니다. 그래서 JSON을 사용하고 싶습니다.
소유권 이전은 동일한 도메인의 사용자간에 만 수행 할 수 있으며 서비스 계정은 어떤 도메인에도 속하지 않습니다. 가장 좋은 방법은 서비스 계정이 액세스 할 수있는 팀 드라이브를 만들고 2 단계 프로세스를 수행하는 것입니다.
Files.update
와 addParents
팀 드라이브 ID로 매개 변수를 설정합니다.Files.update
와 addParents
매개 변수로 설정 root
(또는 대상 폴더의 ID)와 removeParents
팀 드라이브 ID로 매개 변수를 설정합니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다