アカウントAからファイルを共有していますが、アカウントBはこのファイルを読み取り専用にすることができます。GoogleドライブAPI:他のアカウントからファイルをインポートする
DriveWebでは、簡単にインポートできます。その後、Drive APIで、アカウントBがそのファイルを(転送なしで)インポートする方法。
ありがとうございます。
アカウントAからファイルを共有していますが、アカウントBはこのファイルを読み取り専用にすることができます。GoogleドライブAPI:他のアカウントからファイルをインポートする
DriveWebでは、簡単にインポートできます。その後、Drive APIで、アカウントBがそのファイルを(転送なしで)インポートする方法。
ありがとうございます。
認証に精通しており、認証ドライブサービスの設定に関する基本的な考えがあるとします。そうでない場合は、documentationまたはthisチュートリアルをご覧ください。このチュートリアルでは、APIを使い始めることができます。
共有ファイルには、ドライブ内の受信者が共有しているユーザーの所有権でアクセスできます。そのようなファイルはあなたのクォータを占有せず、パーミッションが優先される限りのみアクセスできます。したがって、私は "インポート"によってファイルの所有権を取得し、それをアカウントBに保存することを意図していました。
これで、Service
は認証されたドライブサービスアカウントBになります。アカウントBは、アカウントA.のファイルでなければ、最初にInsert Permissionを入力します。
FileId
は、ファイルのId
をコピーするとParentId
は、ファイルをコピーする先の親ディレクトリのId
されて、ここでは共有ファイルのコピーを作成する方法です。
public void CopyFile(DriveService Service, string FileId, string ParentId)
{
try
{
File FileToCopy = Service.Files.Get(FileId).Execute();
File copiedFile = new File();
copiedFile.Title = FileToCopy.Title;
copiedFile.Parents = new List<ParentReference>() { new ParentReference() { Id = ParentId } };
Service.Files.Copy(copiedFile, FileToCopy.Id).Execute();
}
catch (Exception e)
{
MessageBox.Show("An error occurred: " + e.Message);
}
}
ああ、私は[ここ](https://developers.google.com/drive/v2/reference/parents/insert)でテストすることができますし、私はそれを見つけた返信に感謝します。これはParents.insertメソッドで、あなたの返信はFiles.Copyメソッドです( "import"ではなく新しいファイルが作成されます)。 –
お使いの言語はどの言語ですか? –
私はCドライブを使用していますが、Googleドライブライブラリを嫌い、httprequestを使って[新しいライブラリ](https://github.com/tqk2811/Cloud-Manager/tree/master/Cloud/GoogleDrive)を書きます。私は自己勉強C#だからコードを笑ってはいけません。 –