、Googleドライブに/ダウンロードファイルをアップロードする方法のドキュメントがあります。
ほとんどのGoogle APIと同様に、接続するために認証する必要があります。これを行うには、まずアプリケーションをGoogleデベロッパーコンソールに登録する必要があります。 APIでは、承諾画面フォームに商品名とメールアドレスを必ず追加することを忘れないで、Google Drive API
とGoogle Drive SDK
を必ず有効にしてください。
プロジェクトが少なくとも.net 4.0に設定されていることを確認してください。
download我々は、ファイルIDを取得する唯一の方法は、我々が以前に使用Files.List()
コマンドからあるそのファイルresorceを知っておく必要がありますファイルにするために、次のNuGetパッケージ
PM> Install-Package Google.Apis.Drive.v2
を追加します。
public static Boolean downloadFile(DriveService _service, File _fileResource, string _saveTo)
{
if (!String.IsNullOrEmpty(_fileResource.DownloadUrl))
{
try
{
var x = _service.HttpClient.GetByteArrayAsync(_fileResource.DownloadUrl);
byte[] arrBytes = x.Result;
System.IO.File.WriteAllBytes(_saveTo, arrBytes);
return true;
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
return false;
}
}
else
{
// The file doesn't have any content stored on Drive.
return false;
}
}
_service.HttpClient.GetByteArrayAsync
を使用すると、ダウンロードしたいファイルのダウンロードURLを渡すことができます。ファイルがダウンロードされると、そのファイルをディスクに書き込むという単純な問題です。
ファイルをuploadにするためにディレクトリを作成することから、そのファイルにはmime-type
というものを教えてください。私はそれを理解しようとすると、ここに少しの方法があります。ファイル名を送信してください。注:ファイルの名前が既に存在するファイルと同じ名前である場合、Googleドライブにファイルをアップロードするとき。とにかくGoogleドライブだけでアップロードすると、そこにあったファイルは更新されず、同じ名前の2つのファイルになります。それは、ファイル名に基づいていないfileId
に基づいてのみチェックします。更新コマンドを使用する必要があるファイルを更新する場合は、後で確認します。
public static File uploadFile(DriveService _service, string _uploadFile, string _parent) {
if (System.IO.File.Exists(_uploadFile))
{
File body = new File();
body.Title = System.IO.Path.GetFileName(_uploadFile);
body.Description = "File uploaded by Diamto Drive Sample";
body.MimeType = GetMimeType(_uploadFile);
body.Parents = new List() { new ParentReference() { Id = _parent } };
// File's content.
byte[] byteArray = System.IO.File.ReadAllBytes(_uploadFile);
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
try
{
FilesResource.InsertMediaUpload request = _service.Files.Insert(body, stream, GetMimeType(_uploadFile));
request.Upload();
return request.ResponseBody;
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
return null;
}
}
else {
Console.WriteLine("File does not exist: " + _uploadFile);
return null;
}
}
私はこのチュートリアルを終了しましたが、このチュートリアルでは、AuthorizeAsync APIを呼び出して作成したDriveServiceオブジェクトを使用してファイルをアップロード/ダウンロードします。しかし、私はアクセストークンしか持っていません(http://www.daimto.com/google-api-and-oath2/)。アクセストークンだけでアップロード/ダウンロードを続行するにはどうすればよいですか? – user2734779