hopefully fix issues with empty extension
Docker / build (push) Waiting to run
Details
Docker / build (push) Waiting to run
Details
This commit is contained in:
parent
c4fc33a976
commit
42279dcfb5
|
@ -3,10 +3,10 @@ module Paste69
|
||||||
class PasteController < ATH::Controller
|
class PasteController < ATH::Controller
|
||||||
def initialize(@config : Paste69::ConfigManager, @utils : Paste69::UtilsService, @url_encoder : Paste69::UrlEncoder, @db : Paste69::DBService, @s3_client : Paste69::S3Client); end
|
def initialize(@config : Paste69::ConfigManager, @utils : Paste69::UtilsService, @url_encoder : Paste69::UrlEncoder, @db : Paste69::DBService, @s3_client : Paste69::S3Client); end
|
||||||
|
|
||||||
@[ARTA::Get("/{id}")]
|
@[ARTA::Get("/{id}", requirements: {"id" => /.+/})]
|
||||||
@[ARTA::Post("/{id}")]
|
@[ARTA::Post("/{id}", requirements: {"id" => /.+/})]
|
||||||
@[ARTA::Get("/{secret}/{id}")]
|
@[ARTA::Get("/{secret}/{id}", requirements: {"id" => /.+/})]
|
||||||
@[ARTA::Post("/{secret}/{id}")]
|
@[ARTA::Post("/{secret}/{id}", requirements: {"id" => /.+/})]
|
||||||
def get_paste(req : ATH::Request, id : String, secret : String? = nil) : ATH::Response
|
def get_paste(req : ATH::Request, id : String, secret : String? = nil) : ATH::Response
|
||||||
path = id.split("/").first
|
path = id.split("/").first
|
||||||
sufs = File.extname(path)
|
sufs = File.extname(path)
|
||||||
|
@ -136,9 +136,14 @@ module Paste69
|
||||||
end
|
end
|
||||||
|
|
||||||
if form.has_key?("file")
|
if form.has_key?("file")
|
||||||
_filename, body = form["file"]
|
filename, body = form["file"]
|
||||||
_, filename = form["filename"] || {nil, nil}
|
_, ext = form["ext"] || {nil, nil}
|
||||||
filename = filename ? String.new(filename) : nil
|
|
||||||
|
if ext
|
||||||
|
filename = filename ? File.basename(filename, File.extname(filename)) : "file"
|
||||||
|
ext = String.new(ext).lstrip(".")
|
||||||
|
filename = "#{filename}.#{ext}"
|
||||||
|
end
|
||||||
|
|
||||||
@utils.store_file(
|
@utils.store_file(
|
||||||
body,
|
body,
|
||||||
|
|
|
@ -17,25 +17,29 @@ Be sure to check out the <a href="https://github.com/watzon/paste69">source code
|
||||||
and the <a href="https://git.0x0.st/mia/0x0">original source</a> from mia.
|
and the <a href="https://git.0x0.st/mia/0x0">original source</a> from mia.
|
||||||
|
|
||||||
HTTP POST files here:
|
HTTP POST files here:
|
||||||
curl -F'file=@yourfile.png' {{ fhost_url }}
|
curl -i -F'file=@yourfile.png' {{ fhost_url }}
|
||||||
You can also POST remote URLs:
|
You can also POST remote URLs:
|
||||||
curl -F'url=http://example.com/image.jpg' {{ fhost_url }}
|
curl -i -F'url=http://example.com/image.jpg' {{ fhost_url }}
|
||||||
If you don't want the resulting URL to be easy to guess:
|
If you don't want the resulting URL to be easy to guess:
|
||||||
curl -F'file=@yourfile.png' -Fsecret= {{ fhost_url }}
|
curl -i -F'file=@yourfile.png' -Fsecret= {{ fhost_url }}
|
||||||
curl -F'url=http://example.com/image.jpg' -Fsecret= {{ fhost_url }}
|
curl -i -F'url=http://example.com/image.jpg' -Fsecret= {{ fhost_url }}
|
||||||
Or you can shorten URLs:
|
Or you can shorten URLs:
|
||||||
curl -F'shorten=http://example.com/some/long/url' {{ fhost_url }}
|
curl -i -F'shorten=http://example.com/some/long/url' {{ fhost_url }}
|
||||||
|
|
||||||
It is possible to append your own file name to the URL:
|
In some cases (like when piping STDOUT), you may need to add an extension manually. Otherwise
|
||||||
|
the extension will default to .txt or .bin:
|
||||||
|
curl -i -F'file=@-' -Fext=html {{ fhost_url }}
|
||||||
|
|
||||||
|
It is also possible to append your own file name to the URL:
|
||||||
{{ fhost_url }}/aaa.jpg/image.jpeg
|
{{ fhost_url }}/aaa.jpg/image.jpeg
|
||||||
|
|
||||||
File URLs are valid for at least 30 days and up to a year (see below).
|
File URLs are valid for at least 30 days and up to a year (see below).
|
||||||
Shortened URLs do not expire.
|
Shortened URLs do not expire.
|
||||||
|
|
||||||
Files can be set to expire sooner by adding an "expires" parameter (in hours)
|
Files can be set to expire sooner by adding an "expires" parameter (in hours)
|
||||||
curl -F'file=@yourfile.png' -Fexpires=24 {{ fhost_url }}
|
curl -i -F'file=@yourfile.png' -Fexpires=24 {{ fhost_url }}
|
||||||
OR by setting "expires" to a timestamp in epoch milliseconds
|
OR by setting "expires" to a timestamp in epoch milliseconds
|
||||||
curl -F'file=@yourfile.png' -Fexpires=1681996320000 {{ fhost_url }}
|
curl -i -F'file=@yourfile.png' -Fexpires=1681996320000 {{ fhost_url }}
|
||||||
|
|
||||||
Expired files won't be removed immediately, but will be removed as part of
|
Expired files won't be removed immediately, but will be removed as part of
|
||||||
the next purge.
|
the next purge.
|
||||||
|
@ -45,9 +49,9 @@ the HTTP response header includes an X-Token field. You can use this
|
||||||
to perform management operations on the file.
|
to perform management operations on the file.
|
||||||
|
|
||||||
To delete the file immediately:
|
To delete the file immediately:
|
||||||
curl -Ftoken=token_here -Fdelete= {{ fhost_url }}/abc.txt
|
curl -i -Ftoken=token_here -Fdelete= {{ fhost_url }}/abc.txt
|
||||||
To change the expiration date (see above):
|
To change the expiration date (see above):
|
||||||
curl -Ftoken=token_here -Fexpires=3 {{ fhost_url }}/abc.txt
|
curl -i -Ftoken=token_here -Fexpires=3 {{ fhost_url }}/abc.txt
|
||||||
|
|
||||||
{% set max_size = config["max_content_length"]|filesizeformat(true) %}
|
{% set max_size = config["max_content_length"]|filesizeformat(true) %}
|
||||||
Maximum file size: {{ max_size }}
|
Maximum file size: {{ max_size }}
|
||||||
|
|
Loading…
Reference in New Issue