public override UploadResult Upload(Stream stream, string fileName) { if (!CheckAuthorization()) { return(null); } UploadResult result = UploadData(stream, "https://www.googleapis.com/upload/drive/v2/files", fileName, headers: GetAuthHeaders()); if (!string.IsNullOrEmpty(result.Response)) { GoogleDriveFile upload = JsonConvert.DeserializeObject <GoogleDriveFile>(result.Response); if (upload != null) { AllowReportProgress = false; SetMetadata(upload.id, fileName, FolderID); if (IsPublic) { SetPermissions(upload.id, GoogleDrivePermissionRole.reader, GoogleDrivePermissionType.anyone, "", true); } result.URL = upload.alternateLink; } } return(result); }
public override UploadResult Upload(Stream stream, string fileName) { if (!CheckAuthorization()) { return(null); } string metadata = GetMetadata(fileName, FolderID, DriveID); UploadResult result = SendRequestFile("https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id,webViewLink,webContentLink&supportsAllDrives=true", stream, fileName, "file", headers: GoogleAuth.GetAuthHeaders(), contentType: "multipart/related", relatedData: metadata); if (!string.IsNullOrEmpty(result.Response)) { GoogleDriveFile upload = JsonConvert.DeserializeObject <GoogleDriveFile>(result.Response); if (upload != null) { AllowReportProgress = false; if (IsPublic) { SetPermissions(upload.id, GoogleDrivePermissionRole.reader, GoogleDrivePermissionType.anyone, false); } if (DirectLink) { Uri webContentLink = new Uri(upload.webContentLink); string leftPart = webContentLink.GetLeftPart(UriPartial.Path); NameValueCollection queryString = HttpUtility.ParseQueryString(webContentLink.Query); queryString.Remove("export"); result.URL = $"{leftPart}?{queryString}"; } else { result.URL = upload.webViewLink; } } } return(result); }