Перейти к содержимому

Инструмент для обмена текстом - Бесплатный Paste Bin для кодовых фрагментов

Мгновенно делитесь текстом и кодовыми фрагментами с помощью нашего бесплатного инструмента paste bin. Функции включают подсветку синтаксиса, настройку срока хранения и уникальные URL-адреса. Регистрация не требуется!

Инструмент для обмена текстом

0 символов
Калькулятор загрузки...
📚

Документация

Инструмент обмена текстом (пастбин)

Инструмент обмена текстом, часто называемый пастбином, — это веб-страница для публикации блока текста или кода и получения ссылки, по которой этот текст может увидеть любой открывший её. Этот пастбин работает полностью в браузере, не требует учётной записи и может по желанию добавлять подсветку синтаксиса и срок действия ссылки.

Как работает инструмент обмена текстом

Большинство сервисов-пастбинов хранят текст на сервере и возвращают короткую ссылку, указывающую на строку в базе данных. Этот инструмент работает иначе. У него нет ни сервера, ни базы данных. Вместо этого он упаковывает весь текст прямо в ссылку.

Когда кто-то нажимает «Создать ссылку», инструмент выполняет четыре действия:

  1. Создаёт небольшой объект, содержащий текст, выбранный язык и срок действия (или ничего — для варианта «никогда»).
  2. Преобразует этот объект в одну строку текста в формате JSON.
  3. Преобразует JSON в байты с использованием кодировки UTF-8, которую веб использует повсеместно.
  4. Кодирует эти байты в base64url — схему, которая преобразует произвольные байты в буквы, цифры, - и _, поэтому результат безопасен внутри URL.

Закодированный текст помещается после #p= в конце URL страницы. Всё после # называется фрагментом. При загрузке страницы браузер никогда не отправляет фрагмент на сервер, поэтому содержимое пастбина никуда не передаётся. Чтение ссылки выполняется в обратном порядке: текст base64url декодируется, байты снова преобразуются в строку JSON с помощью UTF-8, а затем JSON разбирается для восстановления текста, языка и срока действия.

Поскольку фрагмент содержит весь текст пастбина, ссылка для обмена работает на любом устройстве или в любом браузере, а не только там, где она была создана. Ничего не нужно искать. Для отображения содержимого достаточно открыть ссылку — так же, как для открытия загруженного файла не требуется спрашивать сервер, что в нём содержится.

Для удобства инструмент также сохраняет копию каждого пастбина в хранилище браузера как черновик. Эта копия лишь помогает тому же браузеру снова найти созданные в нём пастбины; при открытии общей ссылки она не используется, и её удаление не нарушает работу ссылок, поскольку ссылки от неё не зависят.

Подсветка синтаксиса

Подсветка синтаксиса выделяет цветом части кода, например ключевые слова, строки и комментарии, чтобы структуру было легче читать. Инструмент поддерживает десять вариантов:

  • Обычный текст (без подсветки)
  • JavaScript
  • TypeScript
  • Python
  • Java
  • HTML
  • CSS
  • JSON
  • SQL
  • Bash

Выбранный язык сохраняется внутри закодированной полезной нагрузки, поэтому при открытии ссылки подсветка применяется автоматически, без выбора со стороны просматривающего.

Формула срока действия

Параметр срока действия задаёт абсолютную отметку времени, измеряемую в миллисекундах с 1 января 1970 г. (распространённой в вычислительной технике точки отсчёта, называемой эпохой Unix). Инструмент прибавляет к моменту создания ссылки фиксированный промежуток времени:

ВариантДобавляемое время
Никогдаотметка времени не сохраняется
1 час60 × 60 × 1 000 мс
1 день24 × 60 × 60 × 1 000 мс
1 неделя7 × 24 × 60 × 60 × 1 000 мс
1 месяц30 × 24 × 60 × 60 × 1 000 мс (фиксированные 30 суток, а не календарный месяц)

Например, если ссылка создана в момент, когда часы показывают 1 700 000 000 000 мс, а создатель выбирает «1 неделю», сохранённый срок действия будет равен:

1 700 000 000 000 + (7 × 24 × 60 × 60 × 1 000) = 1 700 604 800 000 мс

Когда просматривающий открывает ссылку, инструмент сравнивает сохранённую отметку времени с текущим временем. Если сохранённый момент уже прошёл, вместо текста инструмент показывает сообщение «Срок действия этого содержимого истёк». Поскольку отметка окончания срока передаётся внутри ссылки вместе с текстом, эта проверка одинаково работает на любом устройстве.

как пастбин превращается в ссылку

Предположим, кто-то делится обычным текстом Hello, world! без ограничения срока действия. Инструмент создаёт следующий объект JSON, используя короткие имена полей, чтобы сделать ссылку компактнее:

1{"t":"Hello, world!","l":"plaintext","e":null}
2

Он кодирует этот JSON в байты UTF-8, а затем в base64url, получая:

1eyJ0IjoiSGVsbG8sIHdvcmxkISIsImwiOiJwbGFpbnRleHQiLCJlIjpudWxsfQ
2

Полная ссылка для обмена состоит из адреса страницы и этого токена после #p=:

1https://whiz.tools/en/development/paste-bin-tool#p=eyJ0IjoiSGVsbG8sIHdvcmxkISIsImwiOiJwbGFpbnRleHQiLCJlIjpudWxsfQ
2

Любой, кто открывает эту ссылку, видит в браузере страницу, которая декодирует токен, считывает Hello, world! как обычный текст и отображает его. Сервер ни разу ни о чём не запрашивался.

Как делиться текстом или кодом

  1. Введите или вставьте текст в текстовое поле. По мере ввода обновляется счётчик символов.
  2. При необходимости выберите язык в меню подсветки синтаксиса.
  3. При необходимости выберите срок действия ссылки.
  4. Нажмите «Создать ссылку».
  5. Скопируйте созданную ссылку кнопкой «Копировать ссылку» и отправьте её удобным способом.

Как просматривать общий текст

  1. Откройте общую ссылку.
  2. Текст появляется сразу, с подсветкой, если был выбран язык.
  3. Используйте «Копировать текст», чтобы скопировать содержимое в буфер обмена.
  4. Используйте «Создать новый», чтобы начать новый пастбин.

После создания ссылки пастбин нельзя редактировать. Для изменения текста нужно создать новый пастбин и поделиться новой ссылкой.

Распространённые применения

  • Разработчики делятся фрагментом кода для проверки или помощи при отладке.
  • Преподаватели делятся начальным кодом или инструкциями.
  • Любой пользователь может перенести блок текста, например список или набор заметок, между двумя своими устройствами.

Для текста, который одновременно должны редактировать несколько человек, лучше подходит инструмент для совместной работы с документами. Для кода, которому нужна постоянная история изменений, лучше подходит система контроля версий, например Git.

Ограничения и конфиденциальность

Поскольку весь текст пастбина находится внутри ссылки, практическое ограничение размера определяется длиной самой URL, а не квотой хранилища. Браузеры могут обрабатывать длинные URL, но многие почтовые программы, чаты и старые системы обрезают или отклоняют очень длинные адреса, поэтому очень большие пастбины могут плохо передаваться по некоторым каналам. Короткие и средние по размеру пастбины это ограничение не затрагивает.

Фрагмент никогда не отправляется на сервер, поэтому сам инструмент не узнаёт, какой текст был вставлен. Любой, у кого есть точная ссылка, может открыть её, поэтому с ссылкой следует обращаться так же, как с содержащимся в ней текстом: не передавайте таким способом пароли и другие конфиденциальные данные и не публикуйте ссылку в открытом доступе, если содержимое должно оставаться приватным.

Часто задаваемые вопросы

Где на самом деле хранится общий текст? Он нигде не хранится отдельно от ссылки. Текст, выбранный язык и срок действия закодированы непосредственно во фрагменте ссылки — в части после #. Единственная копия — сама ссылка.

Работает ли ссылка на другом устройстве или в другом браузере? Да. Поскольку содержимое передаётся внутри ссылки, любое устройство, открывшее её, может декодировать и отобразить содержимое. Учётная запись или исходный браузер не требуются.

Что произойдёт, если очистить данные браузера? С существующими общими ссылками ничего не произойдёт. Они зависят только от самой ссылки, а не от данных, сохранённых в браузере. Очистка данных браузера лишь удаляет локальную удобную копию пастбинов, созданных на этом устройстве.

Можно ли редактировать пастбин после создания ссылки? Нет. Для любого изменения нужно создать новую ссылку, поскольку содержимое встраивается в ссылку при её создании.

Что происходит после истечения срока действия пастбина? При открытии просроченной ссылки вместо исходного текста появляется сообщение о том, что срок действия содержимого истёк. Сама ссылка продолжает существовать, но после прохождения сохранённой отметки окончания срока больше не отображает содержимое.

Есть ли ограничение размера? Фиксированного ограничения хранилища нет, но некоторые почтовые клиенты и приложения для обмена сообщениями могут отклонять или обрезать очень длинные URL, поэтому для очень больших пастбинов лучше использовать специальный инструмент обмена файлами.

Источники

  1. "UTF-8." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Glossary/UTF-8
  2. "Base64." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Glossary/Base64
  3. "URL." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/API/URL
  4. "Syntax highlighting." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Syntax_highlighting
  5. "Unix time." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Unix_time