Googleドライブにファイルをアップロードするには、特定のメールアドレスでC#を使用しますか?CドライブでGoogleドライブにファイルをアップロードする
3
A
答えて
2
@ NicoRiffのリファレンスに加えて、Uploading Filesのドキュメントをチェックすることもできます。次のサンプルコードは
var fileMetadata = new File()
{
Name = "My Report",
MimeType = "application/vnd.google-apps.spreadsheet"
};
FilesResource.CreateMediaUpload request;
using (var stream = new System.IO.FileStream("files/report.csv",
System.IO.FileMode.Open))
{
request = driveService.Files.Create(
fileMetadata, stream, "text/csv");
request.Fields = "id";
request.Upload();
}
var file = request.ResponseBody;
Console.WriteLine("File ID: " + file.Id);
tutorialで確認することもできます。
2
「メールIDを使用してアップロードする」の意味が不明です。ユーザーのGoogleドライブにアクセスするには、その秘密のアカウント用にGoogleからアクセストークンを受け取る必要があります。これはAPIを使用して行われます。
アクセストークンは、ユーザーの同意を受けて返されます。そして、このアクセストークンはAPIリクエストを送信するために使用されます。スタートのためにAuthorization
詳細については、こちらをご覧ください、あなたはその後、ユーザーの同意が供給され、認証取得のために、次のコードを使用することができ、あなたのドライブのAPIを有効にしてプロジェクトを登録し、Developer Consol
から資格情報を取得する必要がありドライブサービス
string[] scopes = new string[] { DriveService.Scope.Drive,
DriveService.Scope.DriveFile};
var clientId = "xxxxxx"; // From https://console.developers.google.com
var clientSecret = "xxxxxxx"; // From https://console.developers.google.com
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId,
ClientSecret = clientSecret},
scopes,
Environment.UserName,
CancellationToken.None,
new FileDataStore("MyAppsToken")).Result;
//Once consent is recieved, your token will be stored locally on the AppData directory, so that next time you wont be prompted for consent.
DriveService service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyAppName",
});
service.HttpClient.Timeout = TimeSpan.FromMinutes(100);
//Long Operations like file uploads might timeout. 100 is just precautionary value, can be set to any reasonable value depending on what you use your service for.
次は、ドライブにアップロードするためのコードです。
private static string GetMimeType(string fileName)
{
string mimeType = "application/unknown";
string ext = System.IO.Path.GetExtension(fileName).ToLower();
Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (regKey != null && regKey.GetValue("Content Type") != null)
mimeType = regKey.GetValue("Content Type").ToString();
return mimeType;
}
// _service: Valid, authenticated Drive service
// _uploadFile: Full path to the file to upload
// _parent: ID of the parent directory to which the file should be uploaded
public static Google.Apis.Drive.v2.Data.File uploadFile(DriveService _service, string _uploadFile, string _parent, string _descrp = "Uploaded with .NET!")
{
if (System.IO.File.Exists(_uploadFile))
{
File body = new File();
body.Title = System.IO.Path.GetFileName(_uploadFile);
body.Description = _descrp;
body.MimeType = GetMimeType(_uploadFile);
body.Parents = new List<ParentReference>() { new ParentReference() { Id = _parent } };
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)
{
MessageBox.Show(e.Message,"Error Occured");
}
}
else
{
MessageBox.Show("The file does not exist.","404");
}
}
ここでMIMEタイプを決定するための少しの機能があります。
関連する問題
- 1. Googleドライブにファイルをアップロードするには
- 2. Googleドライブをios(googleドライブ)にアップロードするためのGoogleドライブの統合
- 3. PythonanywhereでGoogleドライブにアップロード
- 4. 大きなファイルをGoogleドライブにアップロード
- 5. JavaScript GoogleドライブAPI V3 - ファイルをフォルダにアップロード
- 6. Android用GoogleドライブAPI(GDAA)を使用して大容量ファイルをGoogleドライブにアップロード
- 7. Android StudioとGoogleドライブAPI(Googleドライブに動画をアップロード)
- 8. Railsでgoogleドライブにアップロードする
- 9. CドライブまたはC++用GoogleドライブAPI
- 10. エラー:objective-cを使用してgoogleドライブにファイルをアップロード
- 11. 匿名ユーザーがGoogleドライブSDKを使用してGoogleドライブにファイルをアップロードできるようにする
- 12. PHP:スタンドアロンでGoogleドライブにcsv/spreadsheetファイルをアップロードする
- 13. アンドロイドアプリケーションを使用してGoogleドライブにファイルをアップロードするには
- 14. GoogleドライブのファイルをGoogleドライブのアプリケーションで直接開く
- 15. C#GoogleドライブAPIv3アップロードファイル
- 16. GoogleドライブApiサービスアカウントC#
- 17. iOS SDKを使用してGoogleドライブにファイルをアップロードする
- 18. Google Apiclient、Googleドライブ、アップロードしたファイルを空にした後
- 19. Googleドライブにファイルを保存
- 20. Googleドライブに暗号化されたファイルをアップロードする方法
- 21. Googleドライブの特定のフォルダにファイルをアップロードする方法
- 22. Googleドライブにファイルをアップロードするサービスアカウント認証
- 23. GoogleドライブAPI v3とJavascriptを使用してArrayBufferのコンテンツをGoogleドライブにアップロード
- 24. Cドライブを使用してGoogleドライブのファイルを閲覧できますか?
- 25. ドライブC:ドライブD:
- 26. 埋め込みブラウザを使用してGoogleドライブにファイルをアップロードするC#
- 27. ユーザーのファイルをdjangoウェブアプリケーションでGoogleドライブにアップロード
- 28. PHPクライアントライブラリでgoogleドライブに大きなファイルをアップロード
- 29. AndroidドライブへのGoogleドライブのインプリメントとGoogleドライブからのファイルのダウンロード
- 30. GoogleドライブV3 Api getファイル名、C#
http://www.daimto.com/google-drive-api-c-upload/ – NicoRiff
実際には、データにアクセスするためにユーザーアカウントに認証される必要がある電子メールアドレスを使用することはできません。それを超えて、答えのコードと上記のリンクはあなたを始めるはずです。 – DaImTo