{"id":17497270,"url":"https://github.com/benaryorg/pastebin-cloud-concept","last_synced_at":"2026-01-02T06:10:22.076Z","repository":{"id":68704887,"uuid":"36879319","full_name":"benaryorg/pastebin-cloud-concept","owner":"benaryorg","description":"the basic concept, problems and solutions for using pastebin as a filecloud","archived":false,"fork":false,"pushed_at":"2015-06-18T13:09:53.000Z","size":184,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-06T03:12:52.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benaryorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-04T15:35:38.000Z","updated_at":"2015-06-04T15:35:38.000Z","dependencies_parsed_at":"2023-02-24T00:00:16.895Z","dependency_job_id":null,"html_url":"https://github.com/benaryorg/pastebin-cloud-concept","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benaryorg%2Fpastebin-cloud-concept","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benaryorg%2Fpastebin-cloud-concept/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benaryorg%2Fpastebin-cloud-concept/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benaryorg%2Fpastebin-cloud-concept/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benaryorg","download_url":"https://codeload.github.com/benaryorg/pastebin-cloud-concept/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243551328,"owners_count":20309300,"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":[],"created_at":"2024-10-19T15:38:25.431Z","updated_at":"2026-01-02T06:10:22.021Z","avatar_url":"https://github.com/benaryorg.png","language":null,"readme":"Using [Pastebin](http://pastebin.com) as a Cloud\n================================================\n\n\n# Contribution\n\nFirst of all, if you want to contribute, please send a pull request.\n\nThere are some TODOs as HTML comments in the text and here are some more:\n\n- add italics and bold font where appropriate\n- add links where useful\n- add content\n- buy me some cookies for my hard work\n\n\n# Implementation\n\nIf you really want this to be implemented, please contact me\n([binary@benary.org](mailto:binary@benary.org)).\n\nIf there are enough people who want this, I will build a cross-platform and\nopen-source client implementing all of this.\n\n# Pastebin\n\nQuoted from their FAQs:\n\n\u003e Pastebin.com is a website where you can **store** text for a certain period of\n\u003e time. The website is mainly used by programmers to store pieces of sources\n\u003e code or configuration information, but anyone is more than welcome to paste\n\u003e any type of text. The idea behind the site is to make it more convenient for\n\u003e people to share large amounts of text online.\n\nHere we have the main keyword which led me to the idea, more than once, to use\nit as a cloud storage.\nI highlighted it for your convenience.\n\n## FAQs\n\n\u003e You've just quoted their FAQs.\n\nYes I did.\n\nHere is the link: [FAQs](http://pastebin.com/faq).\n\n## Why Pastebin?\n\nThere is no particular reason for (at least not while I am writing this) using\nPastebin. You could also use [GitHub's Gists](https://gist.github.com) or some\nsimilar service.\n\n## Has someone done that before?\n\nHonestly, I do not know.\n\n## Is it allowed?\n\nQuoted from their FAQs again:\n\n\u003e Please do NOT post:\n\u003e - email lists\n\u003e - login details\n\u003e - stolen source code\n\u003e - password lists\n\u003e - personal information / data\n\u003e - pornographic information / data\n\u003e - spam links (this includes promoting your own site)\n\nI wrote them an email and they responded (surprisingly fast) that I was allowed\nto do it.\nThey even wished me a happy coding.\n\n\n# Problems\n\nSo, does all of this work?\n\nLet's find out!\n\n## Limitations\n\nOf course they have some limitations. They are **not** stupid.\n\n### Uploads\n\n| Membership | pastes per 24 hours |\n| :--------- | ------------------: |\n| Guests     |    10               |\n| Registered |    20               |\n| Pro        |   250               |\n\n### Type of Pastes\n\nThere are three different types of pastes:\n\n- public\n\t- listed on their website\n- unlisted\n\t- not listed on their website, only accessible via link\n- private\n\t- only visible to you\n\n#### Limits\n\n| membership | public    | unlisted  | private        |\n| :--------- | :-------: | :-------: | :------------: |\n| Guest      | unlimited | unlimited | obviously none |\n| Registered | unlimited | 25        | 10             |\n| Pro        | unlimited | unlimited | unlimited      |\n\n### Size Limit\n\nEvery post can be of _512 kilobytes_ in size.\nPro users have a limit of up to _10 megabytes_.\n\n\u003c!-- TODO: check if they mean powers of ten or two --\u003e\n\n### API\n\nThe API is only accessible for Registered or Pro users.\n\n### Spamfilter\n\n\u003e Pastebin uses an automated spam protection system that will sometimes display\n\u003e a captcha request after you have tried to create a new paste. When you get a\n\u003e captcha request, you have 10 minutes to enter a valid response. If you don't\n\u003e validate your paste within 10 minutes, we will automatically remove it.\n\u003e \n\u003e Various things can trigger this captcha spam protection.\n\u003e \n\u003e A few examples are:\n\u003e - trying to create a certain amount of new pastes in a short period of time.\n\u003e   (flooding)\n\u003e - trying to create pastes with links in it.\n\u003e - trying to create pastes with 'suspicious' keywords in it.\n\u003e \n\u003e There are various levels of spam protection. Anonymous guests, free members\n\u003e and PRO users all have different spam detection levels. Being a PRO member\n\u003e will allow you to post _almost_ anything without the automatic spam protection\n\u003e being activated.\n\n\n# Are those really problems?\n\nThe number of pastes is irrelevant because we will post everything as a\nencrypted public post.\nWe cannot use private or at least unlisted posts because we are no Pro user.\nWell at least there might be people who are not and we want to take care of\neverybody.\nHowever, Guests have no API-access and Registered users are limited to public\nposts, so we choose the registered one because we encrypt our data and also want\nthe higher upload limit.\n\nThe API is not a problem as we are Registered now.\n\n## Size and Upload Limit\n\nBelow are some calculations for the upload volume of the different users.\n\n### Registered\n\nRegistered users have _512 kilobytes_ times _20 per day_.\nThat get's us about **10 megabytes per day**.\n\n### Pro\n\n_10 megabytes_ (that is the whole upload of a registered user per day) times\n_250_ equals **2500 megabytes** which is 20 gigabit or **2.5 gigabytes** per day.\n\n## Spamfilter\n\nThe implementation of an automated captcha downloader which displays the picture\nto you, or a simple notification asking you to visit the website and solve it.\n\nA mechanism to spread the uploads over some time to not trigger captchas at all\nmight be useful.\n\n\n# Format and Encryption\n\nThere are some things to consider:\n\n## Limited Character Range\n\nWe could possibly use [base64](https://en.wikipedia.org/wiki/Base64) which comes\nwith a loss of **one third** of payload.\n\n## Directory Structure and Filenames\n\n### Fileheader vs. Linked List Index\n\n#### Fileheader\n\n- one post can be saved as a local file without lookup\n\n#### Index\n\n- single page acting as index\n- long file or directory names\n- changelog (restoring of previous versions)\n- saving multiple files into one paste\n\n## Compression\n\nWe already use base64 or something similar, why not compress our data to reduce\npayload?\n\n- gzip\n- bzip2\n\t- good for text files\n- xz\n\t- good for binary data\n\n\u003c!-- TODO: add more --\u003e\n\n## Encryption\n\nThis point is very obvious, as we do not want our data to be publicly readable.\n\n- symmetric (AES)\n\t- fast\n\t- password can be lost\n- asymmetric (RSA)\n\t- no human guessable password\n\t- keys need to be copied\n\t- signing possible\n\n\u003c!-- TODO: add more algorithms --\u003e\n\nA huge problem could be changing the password, if you have uploaded a lot.\nThis could be solved deleting all previous pastes and reuploading them newly\nencrypted.\n\n### Per File Encryption \n\nTheoretically aforementioned problem could be lessened by storing all\npasswords/keys encrypted in a directory and use a master password.\nSo only the affected passwords/files need to be reuploaded.\nThe overall guessability of passwords, based on the knowledge of the unencrypted\ncontents of files, gets down to about zero.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenaryorg%2Fpastebin-cloud-concept","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenaryorg%2Fpastebin-cloud-concept","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenaryorg%2Fpastebin-cloud-concept/lists"}