Я успешно загрузил файл изображения в Google Drive с помощью C #. Но я столкнулся с проблемой при загрузке mp3-файла на диск.
Как загрузить mp3-файл на диск Google, используя C # в MVC?
это мой код для сохранения файла:
public ServieResponse SaveFileOnGoogleDrive(string url)
{
//string url = string.Empty; ; ;
//string[] scopes = new string[] { DriveService.Scope.Drive,
// DriveService.Scope.DriveFile};
string[] scopes = new string[] { DriveService.Scope.Drive,
DriveService.Scope.DriveAppdata,
//DriveService.Scope.DriveAppsReadonly,
DriveService.Scope.DriveFile,
DriveService.Scope.DriveMetadataReadonly,
DriveService.Scope.DriveReadonly,
DriveService.Scope.DriveScripts };
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 = "CTM",
});
string filePath = WebConfigurationManager.AppSettings["filPath"];
filePath = HttpContext.Current.Server.MapPath(filePath) + url;
uploadFile(service, filePath, "", "");
// 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.
//return Json(new { result = "abc" }, JsonRequestBehavior.AllowGet);
ServieResponse ob = new ServieResponse();
ob.ResponseMsg = "Success";
return ob;
}