public static ExplorerNode GetListFileFolder(ExplorerNode node) { DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email); IDropbox_Response_ListFolder response = client.ListFolder(new Dropbox_Request_ListFolder(node.GetFullPathString(false))); node.Child.Clear(); foreach (IDropbox_Response_MetaData metadata in response.entries) { if (metadata.tag == "folder") { new ExplorerNode( new NodeInfo() { Name = metadata.name, Size = -1, ID = metadata.id }, node); } } foreach (IDropbox_Response_MetaData metadata in response.entries) { if (metadata.tag == "file") { new ExplorerNode( new NodeInfo() { Name = metadata.name, Size = metadata.size, ID = metadata.id, DateMod = DateTime.Parse(metadata.client_modified) }, node); } } return(node); }
private void Oauth_dropbox_TokenCallBack(string token) { Console.WriteLine("dropbox token call back"); DropboxRequestAPIv2 client = new DropboxRequestAPIv2(token); IDropbox_Response_GetCurrentAccount account = client.GetCurrentAccount(); SaveToken(account.email, token, CloudType.Dropbox); }
public static void CreateFolder(ExplorerNode node) { if (node == node.GetRoot) { throw new Exception("Node is root."); } DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email); IDropbox_Response_MetaData metadata = client.create_folder(new Dropbox_path(node.GetFullPathString(false))); node.Info.ID = metadata.id; }
public static ExplorerNode GetMetaData(ExplorerNode node) { DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email); IDropbox_Response_MetaData metadata = client.GetMetadata( new Dropbox_Request_Metadata(string.IsNullOrEmpty(node.Info.ID) ? node.GetFullPathString(false, true) : "id:" + node.Info.ID)); node.Info.Name = metadata.name; node.Info.DateMod = DateTime.Parse(metadata.server_modified); node.Info.Size = metadata.size; return(node); }
private void Ui_EventUriResponse(Uri uri) { string code = HttpUtility.ParseQueryString(uri.Query).Get("code"); if (code == null) { ReturnToken(null); return; } DropboxRequestAPIv2 client = new DropboxRequestAPIv2(); client.GetAccessToken(code, port); ReturnToken(client.AccessToken); }
public static bool Move(ExplorerNode nodemove, ExplorerNode newparent, string newname = null) { if (nodemove.GetRoot.NodeType.Email != newparent.GetRoot.NodeType.Email || nodemove.GetRoot.NodeType.Type != newparent.GetRoot.NodeType.Type) { throw new Exception("Cloud not match."); } DropboxRequestAPIv2 client = GetAPIv2(nodemove.GetRoot.NodeType.Email); IDropbox_Response_MetaData metadata = client.move( new Dropbox_Request_MoveCopy(nodemove.GetFullPathString(false), newparent.GetFullPathString(false) + "/" + newname == null ? nodemove.Info.Name : newname )); return(newparent.GetFullPathString(false) == metadata.path_display); }
public static bool Delete(ExplorerNode node, bool PernamentDelete) { DropboxRequestAPIv2 dropbox_client = GetAPIv2(node.GetRoot.NodeType.Email); string path = node.GetFullPathString(false); if (PernamentDelete) { dropbox_client.permanently_delete(new Dropbox_path(path)); return(true); } else { IDropbox_Response_MetaData metadata = dropbox_client.delete(new Dropbox_path(path)); return(true); } }
public static string AutoCreateFolder(ExplorerNode node) { if (node.Info.Size > 0) { throw new Exception("Node is file."); } DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email); try { Monitor.Enter(sync_CreateFolder); List <ExplorerNode> pathlist = node.GetFullPath(); int i; for (i = 1; i < pathlist.Count; i++) { try { client.ListFolder(new Dropbox_Request_ListFolder(pathlist[i].GetFullPathString(false))); } catch (HttpException ex) { if (ex.ErrorCode == 409) { break; } throw ex; } } for (; i < pathlist.Count; i++) { client.create_folder(new Dropbox_path(pathlist[i].GetFullPathString(false))); } return(pathlist[i - 1].GetFullPathString(false)); } finally { Monitor.Exit(sync_CreateFolder); } }
void Transfer(TransferItem item) { #if DEBUG Console.WriteLine("Transfer items:" + item.From.node.GetFullPathString()); #endif int buffer_length = 32; //default int.TryParse(AppSetting.settings.GetSettingsAsString(SettingsKey.BufferSize), out buffer_length); //get buffer_length from setting item.buffer = item.From.node.GetRoot.NodeType.Type == CloudType.Mega ? new byte[buffer_length * 2048] : new byte[buffer_length * 1024]; //create buffer ExplorerNode rootnodeto = item.To.node.GetRoot; item.byteread = 0; //this.group.items[x].UploadID = "";//resume item.SizeWasTransfer = item.OldTransfer = item.SaveSizeTransferSuccess; //resume item.ErrorMsg = ""; //clear error item.TimeStamp = CurrentMillis.Millis; if (GroupData.status != StatusTransfer.Running) { return; } switch (rootnodeto.NodeType.Type) { case CloudType.LocalDisk: #region LocalDisk ItemsTransferWork.Add(new TransferBytes(item, this)); return; #endregion case CloudType.Dropbox: #region Dropbox int chunksizedb = 25; //default 25Mb int.TryParse(AppSetting.settings.GetSettingsAsString(SettingsKey.Dropbox_ChunksSize), out chunksizedb); item.ChunkUploadSize = chunksizedb * 1024 * 1024; DropboxRequestAPIv2 DropboxClient = Dropbox.GetAPIv2(rootnodeto.NodeType.Email); if (string.IsNullOrEmpty(item.UploadID)) //create upload id { item.byteread = item.From.stream.Read(item.buffer, 0, item.buffer.Length); IDropbox_Request_UploadSessionAppend session = DropboxClient.upload_session_start(item.buffer, item.byteread); item.UploadID = session.session_id; item.SizeWasTransfer += item.byteread; } ItemsTransferWork.Add(new TransferBytes(item, this, DropboxClient)); return; #endregion case CloudType.GoogleDrive: #region GoogleDrive DriveAPIHttprequestv2 gdclient = GoogleDrive.GetAPIv2(rootnodeto.NodeType.Email); GoogleDrive.CreateFolder(item.To.node.Parent); int chunksizeGD = 5; //default int.TryParse(AppSetting.settings.GetSettingsAsString(SettingsKey.GD_ChunksSize), out chunksizeGD); item.ChunkUploadSize = chunksizeGD * 1024 * 1024; if (string.IsNullOrEmpty(item.UploadID)) //create upload id { if (string.IsNullOrEmpty(item.To.node.Parent.Info.ID)) { throw new Exception("Can't get root id."); } string parentid = item.To.node.Parent.Info.ID; string mimeType = Get_mimeType.Get_mimeType_From_FileExtension(item.To.node.GetExtension()); string jsondata = "{\"title\": \"" + item.From.node.Info.Name + "\", \"mimeType\": \"" + mimeType + "\", \"parents\": [{\"id\": \"" + parentid + "\"}]}"; item.UploadID = gdclient.Files.Insert_ResumableGetUploadID(jsondata, mimeType, item.From.node.Info.Size); } ItemsTransferWork.Add(new TransferBytes(item, this, gdclient)); return; #endregion case CloudType.Mega: #region Mega MegaApiClient MegaClient = MegaNz.GetClient(rootnodeto.NodeType.Email); item.buffer = new byte[128 * 1024]; if (string.IsNullOrEmpty(item.UploadID)) //create upload id { MegaNz.AutoCreateFolder(item.To.node.Parent); //auto create folder item.UploadID = MegaClient.RequestUrlUpload(item.From.node.Info.Size); //Make Upload url } item.From.stream = MegaApiClient.MakeEncryptStreamForUpload(item.From.stream, item.From.node.Info.Size, item.dataCryptoMega); //make encrypt stream from file ItemsTransferWork.Add(new TransferBytes(item, this, MegaClient)); return; #endregion } }
public static Stream GetFileStream(ExplorerNode node, long Startpos = -1, long endpos = -1) { DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email); return(client.Download(new Dropbox_path(node.GetFullPathString(false)), Startpos, endpos)); }