Skip to content

Releases: orhun/rustypaste

v0.11.1

01 Jul 14:34
a402776
Compare
Choose a tag to compare

This is a hotfix release for supporting the use of deprecated [server].landing_page* fields.

v0.11.0

01 Jul 09:36
4ca95cb
Compare
Choose a tag to compare

Added

  • Add a new section for the landing page
    • Also, support a file for the landing page (#64)

Migration path:

Old:

[server]
landing_page = "Landing page text."
landing_page_file = "index.html"
landing_page_content_type = "text/html; charset=utf-8"

New:

[landing_page]
text = "Landing page text."
file = "index.html"
content_type = "text/html; charset=utf-8"

The configuration is backwards compatible but we recommend using the new landing_page section as shown above since the other fields are now deprecated.

  • Add random suffix mode (#69)
    • Support appending a random suffix to the filename before the extension. For example, foo.tar.gz will result in foo.eu7f92x1.tar.gz

To enable, set suffix_mode to true:

[paste]
random_url = { enabled = true, type = "alphanumeric", length = 6, suffix_mode = true }
  • Honor X-Forward-* headers (X-Forwarded-For / X-Forwarded-Host / X-Forwarded-Proto) (#61)

    • This would be really useful to have for setups where the service is running behind a reverse-proxy or gateway and the possibility to adjust the logging output based on their availability, to have the real IP addresses of the clients available in the log.
  • Add new line character to the 404 message (#72)

Terminal output will look better when the file is not found:

$ curl http://localhost:8000/sweeping-tahr
file is not found or expired :(
  • Add editorconfig for correctly formatting the test fixture files
  • Add pull request template

Changed

Fixed

  • Use the static folder for the Shuttle config (#70)
    • There was a regression in the previous release that has caused the static folder to be not present in Shuttle deployments. This shouldn't be an issue anymore and the deployment should be live.
    • Also, it is now possible to trigger a deployment manually via GitHub Actions.

Thanks to @tessus for his contributions to this release!

v0.10.1

05 Jun 21:48
a1bc774
Compare
Choose a tag to compare

Added

  • Add a middleware for checking the content length
    • Before, the upload size was checked after full upload which was clearly wrong.
    • With this change, total amount of bytes to upload is checked via Content-Length header before the upload.

Changed

Fixed

  • Do not drop the config watcher
    • Since 0.9.0, the configuration watcher was dropped early which caused for it to not work and resulted in mysterious spikes in CPU usage.
    • With this version, this issue is fixed.

v0.10.0

30 May 23:22
d4d8a28
Compare
Choose a tag to compare

Added

  • Support one shot URLs

With using the oneshot_url multipart field, you can now shorten an URL and make it disappear after viewed once:

curl -F "oneshot_url=https://example.com" "<server_address>"
  • Allow configuring the content type for the landing page

landing_page_content_type is added as a configuration option for setting the Content-Type header:

[server]
landing_page = ""
landing_page_content_type = "text/plain; charset=utf-8"
  • Add information/example about using HTML forms

With utilizing the newly added option for the content type, you can now use HTML forms for the landing page:

[server]
landing_page = "<html>"
landing_page_content_type = "text/html; charset=utf-8"

There is an example added to the repository: html_form.toml

Also, there is an ongoing discussion about refactoring the usage of landing page fields in the configuration file. See #52

  • An informative log message is added for showing the server address at startup

v0.9.1

24 May 19:59
6f2d27d
Compare
Choose a tag to compare

Changed

  • Bump Shuttle to 0.17.0
  • Tweak public instance settings
    • Increase the default expiry time to 24 hours
    • Increase the max content length to 20MB
  • Bump dependencies

v0.9.0

17 May 11:07
8359aad
Compare
Choose a tag to compare

The public instance is now available at https://rustypaste.shuttleapp.rs 🚀

Read the blog post about rustypaste and Shuttle deployments: https://blog.orhun.dev/blazingly-fast-file-sharing

Added

  • Deploy on Shuttle.rs
  • Support setting a default expiry time

You can now specify a expiry time for uploaded files. For example, if you want all the files to expire after one hour:

[paste]
default_expiry = "1h"
  • Support overriding the server URL

If you are using rustypaste with a redirect or reverse proxy, it is now possible to set a different URL for the returned results:

[server]
url = "https://rustypaste.shuttleapp.rs"
  • Add instructions for installing on Alpine Linux

rustypaste is now available in testing repositories.

  • Add new crate features

    • shuttle: enable an entry point for deploying on Shuttle
    • openssl: use distro OpenSSL (binary size is reduced ~20% in release mode)
    • rustls: use rustls (enabled as default)

Changed

  • Make the default landing page fancier
  • Generate SBOM attestation for the Docker image

Updated

v0.8.4

31 Jan 18:23
ce51c18
Compare
Choose a tag to compare

Added

  • Allow downloading files via ?download=true parameter
    • If you specify this for a file (e.g. <server_address>/file?download=true), rustypaste will override the MIME type to application/octet-stream and this will force your browser to download the file.
    • This is useful when e.g. you want to be able to share the link to a file that would play in the browser (like .mp4) but also share a link that will auto-download as well.

v0.8.3

30 Jan 19:54
e459ba5
Compare
Choose a tag to compare

Updated

  • Bump dependencies
  • Switch to Rust image for the Dockerfile
  • Remove unused clap dependency

v0.8.2

04 Oct 16:38
a954676
Compare
Choose a tag to compare

Updated

  • Don't expose version endpoint in default config
    • Set expose_version to false in the configuration file

v0.8.1

04 Oct 11:00
df0d539
Compare
Choose a tag to compare

Added

  • Add <server_address>/version endpoint for retrieving the server version
[server]
expose_version=true

If expose_version entry is not present in the configuration file, /version is not exposed. It is recommended to use this feature with authorization enabled.

Fixed