{"id":23335133,"url":"https://github.com/jackkoolage/4sharedsdk","last_synced_at":"2026-04-10T23:51:32.874Z","repository":{"id":143490204,"uuid":"235464237","full_name":"jackkoolage/4sharedSDK","owner":"jackkoolage","description":"4shared.com SDK for .NET","archived":false,"fork":false,"pushed_at":"2020-01-31T13:55:53.000Z","size":104,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-28T21:07:29.494Z","etag":null,"topics":["4shared","api","cloud","dotnet","download","file-sharing","framework","sdk","standard","upload"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackkoolage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-21T23:50:46.000Z","updated_at":"2022-05-01T19:31:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"145e8796-64df-494e-95af-2fcca170ff2a","html_url":"https://github.com/jackkoolage/4sharedSDK","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2F4sharedSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2F4sharedSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2F4sharedSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2F4sharedSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackkoolage","download_url":"https://codeload.github.com/jackkoolage/4sharedSDK/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247652149,"owners_count":20973577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["4shared","api","cloud","dotnet","download","file-sharing","framework","sdk","standard","upload"],"created_at":"2024-12-21T01:16:36.784Z","updated_at":"2026-04-10T23:51:32.798Z","avatar_url":"https://github.com/jackkoolage.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 4sharedSDK\n\n`Download:`[https://github.com/jackkoolage/4sharedSDK/releases](https://github.com/jackkoolage/4sharedSDK/releases)\u003cbr\u003e\n`NuGet:`\n[![NuGet](https://img.shields.io/nuget/v/DeQmaTech.4sharedSDK.svg?style=flat-square\u0026logo=nuget)](https://www.nuget.org/packages/DeQmaTech.4sharedSDK)\u003cbr\u003e\n\n\n# Features:\n* Assemblies for .NET 4.5.2 and .NET Standard 2.0 and .NET Core 2.1\n* Just one external reference (Newtonsoft.Json)\n* Easy installation using NuGet\n* Upload/Download tracking support\n* Proxy Support\n* Upload/Download cancellation support\n\n\n# List of functions:\n**Token**\n1. Login\n1. Register\n\n**Account(Mine)**\n1. UserInfo\n1. UpdateUserInfo\n1. GetAvatarPicture\n1. SetAvatarPicture\n\n**Comment**\n1. ListComments\n1. Create\n1. Delete\n1. Reply\n1. ReportAsSpam\n1. UnReportAsSpam\n\n**Data**\n1. SearchRoot\n1. EmptyRecycleBin\n1. ListRoot\n1. RootID\n1. RecycleBinID\n1. ListRecycleBin\n1. RestoreRecycleBin\n1. GetLinkForFile\n\n**File**\n1. Upload\n1. UploadLargeFile\n1. Update\n1. UpdateLargeFile\n1. Copy\n1. CopyMultiple\n1. Move\n1. MoveMultiple\n1. Trash\n1. UnTrash\n1. TrashMultiple\n1. Delete\n1. DeleteMultiple\n1. Metadata\n1. EditMetadata\n1. ChangePrivacy\n1. Rename\n1. Download\n1. DownloadLargeFile\n1. DownloadAsStream\n1. ImportToMyAccount\n1. ThumbnailUrl\n1. UnZip\n1. Exists\n\n**Folder**\n1. Password\n1. SetDescription\n1. ChangePermission\n1. ChangePrivacy\n1. Search\n1. ListSubFiles\n1. ListSubFolders\n1. Create\n1. Copy\n1. CopyMultiple\n1. Move\n1. MoveMultiple\n1. UnTrash\n1. Trash\n1. Delete\n1. DeleteMultiple\n1. TrashMultiple\n1. Rename\n1. Metadata\n1. Exists\n1. ExistsInTargetFolder\n\n**User**\n1. SearchFiles\n1. Metadata\n1. AvatarPicture\n1. ListFilesRelatedToFile\n\n\n# CodeMap:\n![codemap](https://i.postimg.cc/yNZ3JPGW/4s-codemap.png)\n\n\n# Code simple:\n```vb\n    Async Function tasks() As Task\n        'first login (one time only)\n        Dim tokn = Await FourSharedSDK.GetToken.Login_Base64(\"your_email\", \"your_password\")\n        ''set proxy and connection options\n        Dim con As New FourSharedSDK.ConnectionSettings With {.CloseConnection = True, .TimeOut = TimeSpan.FromMinutes(30), .Proxy = New FourSharedSDK.ProxyConfig With {.SetProxy = True, .ProxyIP = \"127.0.0.1\", .ProxyPort = 8888, .ProxyUsername = \"user\", .ProxyPassword = \"pass\"}}\n        ''set api client\n        Dim client As FourSharedSDK.IClient = New FourSharedSDK.FClient(tokn, Nothing)\n\n\n        ''functions:\n        'Account\n        Await client.Account.GetAvatarPicture(ImageSizeEnum._72x72)\n        Dim _ReportCls As New Progress(Of FourSharedSDK.ReportStatus)(Sub(ReportClass As FourSharedSDK.ReportStatus)\n                                                                          Label1.Text = String.Format(\"{0}/{1}\", (ReportClass.BytesTransferred), (ReportClass.TotalBytes))\n                                                                          Label1.Text = CInt(ReportClass.ProgressPercentage)\n                                                                          Label1.Text = If(CStr(ReportClass.TextStatus) Is Nothing, \"Uploading...\", CStr(ReportClass.TextStatus))\n                                                                      End Sub)\n        Await client.Account.SetAvatarPicture(\"c:\\\\pic.jpg\", UploadTypes.FilePath, \"pic.jpg\", _ReportCls, Nothing)\n        Await client.Account.UpdateUserInfo(\"first_name\", \"last_name\", \"pass\", \"email\", AllowSearchEnum.disabled)\n        Await client.Account.UserInfo\n\n        ''Comments\n        Await client.Comments.Create(\"file_id\", \"this is comment\")\n        Await client.Comments.Delete(\"file_id\", \"comment_id\")\n        Await client.Comments.ListComments(\"file_id\", 50, 0)\n        Await client.Comments.Reply(\"file_id\", \"comment_id\", \"this is replay to an comment\")\n        Await client.Comments.ReportAsSpam(\"comment_id\")\n        Await client.Comments.UnReportAsSpam(\"comment_id\")\n\n        ''Data\n        Await client.Data.EmptyRecycleBin\n        Await client.Data.GetLinkForFile\n        Await client.Data.ListRecycleBin(Nothing, 50, 0)\n        Await client.Data.ListRoot(\"root_id\", 50, 0)\n        Await client.Data.RecycleBinID(\"root_id\")\n        Await client.Data.RestoreRecycleBin(Nothing)\n        Await client.Data.RootID()\n        Await client.Data.SearchRoot(\"emy\", FileTypeEnum.Music, 50, 0)\n\n        ''Files\n        Await client.Files.ChangePrivacy(\"\", True)\n        Await client.Files.Copy(\"file_id\", \"folder_id\", \"newName\")\n        Await client.Files.CopyMultiple(New List(Of String) From {{\"file_id\"}, {\"file_id\"}}, \"folder_id\")\n        Await client.Files.Delete(\"file_id\")\n        Await client.Files.DeleteMultiple(New List(Of String) From {{\"file_id\"}, {\"file_id\"}})\n        Await client.Files.Download(\"/My 4shared/oppo/bouncy1.8.5.zip\", \"c:\\\\\", _ReportCls, Nothing)\n        Await client.Files.DownloadAsStream(\"/My 4shared/oppo/bouncy1.8.5.zip\", _ReportCls, Nothing)\n        Await client.Files.DownloadLargeFile(\"/My 4shared/oppo/bouncy1.8.5.zip\", \"c:\\\\\", _ReportCls, Nothing)\n        Await client.Files.EditMetadata(\"file_id\", \"this is file\", \"sdk,api,cloud\")\n        Await client.Files.Exists(\"file_id\")\n        Await client.Files.ImportToMyAccount(\"file_id\", \"folder_id\")\n        Await client.Files.Metadata(\"file_id\", AddFieldsEnum.ImageMetainfo)\n        Await client.Files.Move(\"file_id\", \"folder_id\")\n        Await client.Files.MoveMultiple(New List(Of String) From {{\"file_id\"}, {\"file_id\"}}, \"folder_id\")\n        Await client.Files.Rename(\"file_id\", \"newName\")\n        Await client.Files.ThumbnailUrl(\"file_id\", ImageSizeEnum._320x240)\n        Await client.Files.Trash(\"file_id\")\n        Await client.Files.TrashMultiple(New List(Of String) From {{\"file_id\"}, {\"file_id\"}})\n        Await client.Files.UnTrash(\"file_id\")\n        Await client.Files.UnZip(\"file_id\")\n        Await client.Files.Update(\"c:\\\\fle.mp4\", UploadTypes.FilePath, \"file_id\", \"folder_id\", \"fle.mp4\", _ReportCls, Nothing)\n        Await client.Files.UpdateLargeFile(\"c:\\\\fle.mp4\", UploadTypes.FilePath, \"file_id\", \"folder_id\", \"fle.mp4\", 12345, _ReportCls, Nothing)\n        Await client.Files.Upload(\"c:\\\\fle.mp4\", UploadTypes.FilePath, \"folder_id\", \"fle.mp4\", _ReportCls, Nothing)\n        Await client.Files.UploadLargeFile(\"c:\\\\fle.mp4\", UploadTypes.FilePath, \"folder_id\", \"fle.mp4\", 123456, _ReportCls, Nothing)\n\n        ''Folders\n        Await client.Folders.ChangePermission(\"folder_id\", FolderPermissionsEnum.read)\n        Await client.Folders.ChangePrivacy(\"\", PrivacyEnum.private)\n        Await client.Folders.Copy(\"folder_id\", \"folder_id\", Nothing)\n        Await client.Folders.CopyMultiple(New List(Of String) From {{\"folder_id\"}, {\"folder_id\"}}, \"folder_id\")\n        Await client.Folders.Create(\"folder_id\", \"new folder\", \"music dir\")\n        Await client.Folders.Delete(\"folder_id\")\n        Await client.Folders.DeleteMultiple(New List(Of String) From {{\"folder_id\"}, {\"folder_id\"}})\n        Await client.Folders.Exists(\"folder_id\")\n        Await client.Folders.ExistsInTargetFolder(\"work folder\", \"folder_id\")\n        Await client.Folders.ListSubFiles(\"folder_id\", FileTypeEnum.Video, AddFieldsEnum.id3, 50, 0)\n        Await client.Folders.ListSubFolders(\"folder_id\", 50, 0)\n        Await client.Folders.Metadata(\"folder_id\")\n        Await client.Folders.Move(\"folder_id\", \"folder_id\", Nothing)\n        Await client.Folders.MoveMultiple(New List(Of String) From {{\"folder_id\"}, {\"folder_id\"}}, \"folder_id\")\n        Await client.Folders.Password(\"folder_id\", \"1234\")\n        Await client.Folders.Rename(\"folder_id\", \"new name\")\n        Await client.Folders.Search(\"folder_id\", \"emy\", FileTypeEnum.Video, 50, 0)\n        Await client.Folders.SetDescription(\"folder_id\", \"this is des\")\n        Await client.Folders.Trash(\"folder_id\")\n        Await client.Folders.TrashMultiple(New List(Of String) From {{\"folder_id\"}, {\"folder_id\"}})\n        Await client.Folders.UnTrash(\"folder_id\")\n\n        ''Users\n        Await client.Users.AvatarPicture(\"user_id\", ImageSizeEnum._320x240)\n        Await client.Users.ListFilesRelatedToFile(\"file_id\", 50, 0)\n        Await client.Users.Metadata(\"user_id\")\n        Await client.Users.SearchFiles(\"emy\", FilesFilterEnum.all, FilesTypeEnum.asf, 5000, 60000, SortByEnum.name, OrderByEnum.asc, 50, 0)\n    End Function\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackkoolage%2F4sharedsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackkoolage%2F4sharedsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackkoolage%2F4sharedsdk/lists"}