base url en variable de entorno
This commit is contained in:
parent
c2167c2126
commit
6f657250fd
@ -6,10 +6,11 @@ Devolve un link para descargalo.
|
|||||||
|
|
||||||
## Execución
|
## Execución
|
||||||
```
|
```
|
||||||
UPLOADS="/tmp/uploads/" PORT=4000 cargo run
|
UPLOADS="/tmp/uploads/" BASE_URL="http://127.0.0.1" PORT=4000 cargo run
|
||||||
```
|
```
|
||||||
As variables de entorno UPLOADS e PORT son opcionais tendo como valores por defecto:
|
As variables de entorno UPLOADS, BASE_URL e PORT son opcionais tendo como valores por defecto:
|
||||||
- UPLOADS = "uploads/"
|
- UPLOADS = "uploads/"
|
||||||
|
- BASE_URL = "http://127.0.0.1"
|
||||||
- PORT = 3000
|
- PORT = 3000
|
||||||
|
|
||||||
## Funcionamento
|
## Funcionamento
|
||||||
|
11
src/lib.rs
11
src/lib.rs
@ -26,3 +26,14 @@ pub fn env_listen_port() -> u16 {
|
|||||||
None => 3000,
|
None => 3000,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// le a variable de entorno BASE_URL para configurar o porto de escoita
|
||||||
|
// por defecto: http://localhost:3000
|
||||||
|
pub fn env_base_url() -> String {
|
||||||
|
let port = env_listen_port();
|
||||||
|
|
||||||
|
match env::var_os("BASE_URL") {
|
||||||
|
Some(val) => format!("{}:{}", val.into_string().unwrap(), port),
|
||||||
|
None => format!("{}:{}", "http://localhost", port),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
use axum::response::{Html, IntoResponse, Response};
|
use axum::response::{Html, IntoResponse, Response};
|
||||||
|
use crate::lib::env_base_url;
|
||||||
|
|
||||||
// basic handler that responds with a static string
|
// basic handler that responds with a static string
|
||||||
pub async fn basic() -> Response {
|
pub async fn basic() -> Response {
|
||||||
Html(
|
let url = env_base_url();
|
||||||
|
let html = format!(
|
||||||
"<pre>
|
"<pre>
|
||||||
SH4R.IN
|
SH4R.IN
|
||||||
=======
|
=======
|
||||||
|
|
||||||
HTTP POST files here:
|
HTTP POST files here:
|
||||||
curl -F'file=@yourfile.png' https://sh4r.in
|
curl -F'file=@yourfile.png' {}
|
||||||
You can also POST remote URLs:
|
You can also POST remote URLs:
|
||||||
curl -F'url=http://example.com/image.jpg' https://sh4r.in
|
curl -F'url=http://example.com/image.jpg' {}
|
||||||
|
|
||||||
File URLs are valid for aproximately 5 days.
|
File URLs are valid for aproximately 5 days.
|
||||||
|
|
||||||
@ -34,11 +36,11 @@ and the originating IP address blocked from further uploads.
|
|||||||
UPLOAD DIRECTLY
|
UPLOAD DIRECTLY
|
||||||
---------------
|
---------------
|
||||||
</pre>
|
</pre>
|
||||||
<form action=\"https://sh4r.in\" method=\"POST\" enctype=\"multipart/form-data\">
|
<form action=\"{}\" method=\"POST\" enctype=\"multipart/form-data\">
|
||||||
<input class=\"form-control\" type=\"file\" name=\"file\">
|
<input class=\"form-control\" type=\"file\" name=\"file\">
|
||||||
<input class=\"form-control\" type=\"submit\" value=\"send\">
|
<input class=\"form-control\" type=\"submit\" value=\"send\">
|
||||||
</form>
|
</form>
|
||||||
",
|
",
|
||||||
)
|
url, url, url);
|
||||||
.into_response()
|
Html(html).into_response()
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::lib::{randstr, env_uploads_dir};
|
use crate::lib::{randstr, env_uploads_dir, env_base_url};
|
||||||
use axum::{
|
use axum::{
|
||||||
extract::Multipart,
|
extract::Multipart,
|
||||||
response::{IntoResponse, Response},
|
response::{IntoResponse, Response},
|
||||||
@ -28,7 +28,7 @@ pub async fn upload(mut multipart: Multipart) -> Response {
|
|||||||
let mut file = File::create(dest).await.expect("error creando arquivo");
|
let mut file = File::create(dest).await.expect("error creando arquivo");
|
||||||
file.write_all(&data).await.expect("error gardando contido");
|
file.write_all(&data).await.expect("error gardando contido");
|
||||||
|
|
||||||
link = format!("https://sh4r.in/f/{}", fillo);
|
link = format!("{}/f/{}", env_base_url(), fillo);
|
||||||
}
|
}
|
||||||
|
|
||||||
link.into_response()
|
link.into_response()
|
||||||
|
Loading…
Reference in New Issue
Block a user