Proofreading using.fr.md
This commit is contained in:
parent
d0b6ec7014
commit
a03a5558d6
205
using.fr.md
205
using.fr.md
|
@ -2,132 +2,197 @@
|
||||||
|
|
||||||
Et PAF !
|
Et PAF !
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
|
||||||
## Envoyer un ou plusieurs fichiers
|
Utilisez cette fonction `bash` :
|
||||||
|
|
||||||
En utilisant des requêtes `multipart/form-data` il est possible d'envoyer un fichier :
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ curl http://localhost:8000/ -Fmanage.py=@manage.py
|
paf()
|
||||||
| URL | size | filename |
|
{
|
||||||
|-------------------------|--------|-----------|
|
curl https://p.afpy.org/ "${@/*/-F&=@&}"
|
||||||
| https://p.afpy.org/g3LE | 251 | manage.py |
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette fonction permet d'envoyer un fichier :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ paf manage.py
|
||||||
|
- https://p.afpy.org/TaPa/manage.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Ou plusieurs :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ paf *.py
|
||||||
|
- https://p.afpy.org/d6Xd/admin.py
|
||||||
|
- https://p.afpy.org/d6Xd/context_processors.py
|
||||||
|
- https://p.afpy.org/d6Xd/__init__.py
|
||||||
|
- https://p.afpy.org/d6Xd/models.py
|
||||||
|
- https://p.afpy.org/d6Xd/urls.py
|
||||||
|
- https://p.afpy.org/d6Xd/utils.py
|
||||||
|
- https://p.afpy.org/d6Xd/views.py
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Utilisation avec curl
|
||||||
|
|
||||||
|
En utilisant des requêtes `multipart/form-data` il est possible d'envoyer un fichier :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ curl https://p.afpy.org/ -Fmanage.py=@manage.py
|
||||||
|
- https://p.afpy.org/TaPa/manage.py
|
||||||
```
|
```
|
||||||
|
|
||||||
ou plusieurs fichiers en même temps :
|
ou plusieurs fichiers en même temps :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ curl http://localhost:8000/ -Fmanage.py=@manage.py -Frequirements.txt=@requirements.txt
|
$ curl https://p.afpy.org/ -Fmanage.py=@manage.py -Frequirements.txt=@requirements.txt
|
||||||
| URL | size | filename |
|
- https://p.afpy.org/Nz2o/manage.py
|
||||||
|-------------------------|--------|------------------|
|
- https://p.afpy.org/Nz2o/requirements.txt
|
||||||
| https://p.afpy.org/g3LE | 251 | manage.py |
|
|
||||||
| https://p.afpy.org/k4oT | 547 | requirements.txt |
|
|
||||||
```
|
```
|
||||||
|
|
||||||
C'est l'extension dans le nom du fichier qui permet de choisir la
|
C'est l'extension dans le nom du fichier qui permet de choisir la
|
||||||
coloration syntaxique pour chaque fichier.
|
coloration syntaxique pour chaque fichier.
|
||||||
|
|
||||||
|
|
||||||
## Envoyer dans le corps d'une requête
|
### Envoyer dans le corps d'une requête
|
||||||
|
|
||||||
Il est possible de coller un unique fichier via le corps d'une requête POST :
|
Il est possible de coller un unique fichier via le corps d'une requête POST :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cal | curl -XPOST --data-binary @- http://localhost:8000/
|
$ cal | curl -XPOST --data-binary @- https://p.afpy.org/
|
||||||
| URL | size | filename |
|
- https://p.afpy.org/mo8X
|
||||||
|-------------------------|--------|----------|
|
|
||||||
| https://p.afpy.org/mo8X | 184 | request |
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Dans ce cas, il est possible de choisir la coloration syntaxique via l'entête `Content-Type` :
|
Dans ce cas, il est possible de choisir la coloration syntaxique via l'entête `Content-Type` :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cal | curl -XPOST -H "Content-Type: text/plain" --data-binary @- http://localhost:8000/
|
$ cal | curl -XPOST -H "Content-Type: text/plain" --data-binary @- https://p.afpy.org/
|
||||||
| URL | size | filename |
|
- https://p.afpy.org/i3Y2/request.txt
|
||||||
|-------------------------|--------|-------------|
|
|
||||||
| https://p.afpy.org/dNuo | 184 | request.txt |
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Fonction bash
|
### Choisir l'URL
|
||||||
|
|
||||||
Pour ceux qui ne souhaitent pas rédiger des requêtes `curl` toute la journée, voici une petite fonction bash :
|
Il est possible d'utiliser la méthode `PUT` sur une `URL` :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ cal | curl -XPUT --data-binary @- https://p.afpy.org/cal
|
||||||
|
- https://p.afpy.org/cal
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ curl -XPUT --data-binary @manage.py https://p.afpy.org/manage.py
|
||||||
|
- https://p.afpy.org/manage.py
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Écraser un paste existant
|
||||||
|
|
||||||
|
Lors du premier envoi d'un paste, vous pouvez lui affecter un secret via l'entête HTTP `Authorization` :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ date | curl -XPUT --data-binary @- -H "Authorization: Secret supersecret" https://p.afpy.org/date
|
||||||
|
- https://p.afpy.org/date
|
||||||
|
```
|
||||||
|
|
||||||
|
Ainsi vous pouvez mettre à jour ce `paste` en utilisant la même URL et le même secret :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ date | curl -XPUT --data-binary @- -H "Authorization: Secret supersecret" https://p.afpy.org/date
|
||||||
|
- https://p.afpy.org/date
|
||||||
|
$ curl https://p.afpy.org/date
|
||||||
|
Tue Apr 25 06:22:45 PM CEST 2023
|
||||||
|
$ date | curl -XPUT --data-binary @- -H "Authorization: Secret supersecret" https://p.afpy.org/date
|
||||||
|
- https://p.afpy.org/date
|
||||||
|
$ curl https://p.afpy.org/date
|
||||||
|
Tue Apr 25 06:23:44 PM CEST 2023
|
||||||
|
```
|
||||||
|
|
||||||
|
La page d'accueil est maintenue de cette manière la.
|
||||||
|
|
||||||
|
|
||||||
|
### Lister ses envois
|
||||||
|
|
||||||
|
Tous les envois effectiés avec le même secret peuvent être listés via l'URL `/::/list/` :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ curl https://p.afpy.org/::/list/ -H "Authorization: Secret supersecret"
|
||||||
|
| filename | size | URL | paste_time | access_time | viewcount |
|
||||||
|
|------------|--------|---------------------|---------------------------|---------------------------|-------------|
|
||||||
|
| | 5168 | https://p.afpy.org/ | 2023-04-25T16:03:59+00:00 | 2023-04-25T16:26:59+00:00 | 2 |
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Utilisation avancée
|
||||||
|
|
||||||
|
Avec cette fonction (dont le secret doit être personalisé) :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
paf()
|
paf()
|
||||||
{
|
{
|
||||||
|
local SECRET="supersecret"
|
||||||
|
local AUTH="-HAuthorization: Secret $SECRET"
|
||||||
|
local INSTANCE="https://p.afpy.org/"
|
||||||
|
|
||||||
|
if [[ $1 == "--list" ]]
|
||||||
|
then
|
||||||
|
curl "$AUTH" $INSTANCE::/list/
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $# == 0 ]]
|
if [[ $# == 0 ]]
|
||||||
then
|
then
|
||||||
curl https://p.afpy.org/ --data-binary @- -H "Content-Type: text/plain"
|
curl "$AUTH" "$INSTANCE" --data-binary @-
|
||||||
else
|
else
|
||||||
curl https://p.afpy.org/ "${@/*/-F&=@&}"
|
curl "$AUTH" "$INSTANCE" "${@/*/-F&=@&}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Cette fonction est capable d'envoyer un fichier :
|
Il est possible :
|
||||||
|
|
||||||
|
- d'envoyer un ou plusieurs fichiers,
|
||||||
|
- d'envoyer `stdin`,
|
||||||
|
- de lister ses envois.
|
||||||
|
|
||||||
|
Exemple d'envoi via `stdin` :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ paf manage.py
|
|
||||||
| URL | size | filename |
|
|
||||||
|-------------------------|--------|-----------|
|
|
||||||
| https://p.afpy.org/g3LE | 251 | manage.py |
|
|
||||||
```
|
|
||||||
|
|
||||||
plusieurs fichiers :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ paf *.py
|
|
||||||
| URL | size | filename |
|
|
||||||
|-------------------------|--------|-----------------------|
|
|
||||||
| https://p.afpy.org/bvRV | 188 | admin.py |
|
|
||||||
| https://p.afpy.org/5uei | 296 | context_processors.py |
|
|
||||||
| https://p.afpy.org/Xg5a | 1419 | models.py |
|
|
||||||
| https://p.afpy.org/GkGS | 309 | urls.py |
|
|
||||||
| https://p.afpy.org/LVXL | 2730 | views.py |
|
|
||||||
```
|
|
||||||
|
|
||||||
et même de lire sur `stdin` :
|
|
||||||
|
|
||||||
```
|
|
||||||
$ cal | paf
|
$ cal | paf
|
||||||
| URL | size | filename |
|
- https://p.afpy.org/aAkF
|
||||||
|-------------------------|--------|-------------|
|
|
||||||
| https://p.afpy.org/dNuo | 184 | request.txt |
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Dernière démo, puisque le résultat d'un envoi est un tableau de toutes les URL, il est tentant de le partager lui aussi :
|
Si vous voulez partager un dossier complet, vous pouvez simplement envoyer la liste des URL qui vous est renvoyée :
|
||||||
|
|
||||||
```
|
```
|
||||||
$ paf *.py | paf
|
$ paf *.py|paf
|
||||||
| URL | size | filename |
|
- https://p.afpy.org/nnLR
|
||||||
|-------------------------|--------|-------------|
|
|
||||||
| https://p.afpy.org/L5pc | 488 | request.txt |
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Ce qui donne :
|
Ce qui donne :
|
||||||
|
|
||||||
```
|
```
|
||||||
$ curl https://p.afpy.org/L5pc
|
$ curl https://p.afpy.org/nnLR
|
||||||
| URL | size | filename |
|
- https://p.afpy.org/fAqR/admin.py
|
||||||
|-------------------------|--------|-----------------------|
|
- https://p.afpy.org/fAqR/context_processors.py
|
||||||
| https://p.afpy.org/7rFj | 188 | admin.py |
|
- https://p.afpy.org/fAqR/__init__.py
|
||||||
| https://p.afpy.org/DLfp | 296 | context_processors.py |
|
- https://p.afpy.org/fAqR/models.py
|
||||||
| https://p.afpy.org/9o33 | 0 | __init__.py |
|
- https://p.afpy.org/fAqR/urls.py
|
||||||
| https://p.afpy.org/YdvG | 1419 | models.py |
|
- https://p.afpy.org/fAqR/utils.py
|
||||||
| https://p.afpy.org/97fG | 309 | urls.py |
|
- https://p.afpy.org/fAqR/views.py
|
||||||
| https://p.afpy.org/oPRr | 2974 | views.py |
|
|
||||||
```
|
```
|
||||||
|
|
||||||
pratique pour partager tout un dossier.
|
Et qui est rendu avec des liens cliquables en HTML !
|
||||||
|
|
||||||
|
|
||||||
## Accès aux collages
|
## Accès aux collages
|
||||||
|
|
||||||
Chaque collage peut-être consulté dans un navigateur (où il est
|
Chaque collage peut-être consulté dans un navigateur (où il est
|
||||||
présenté avec de la coloration syntaxique : https://p.afpy.org/g3LE),
|
présenté avec de la coloration syntaxique : https://p.afpy.org/manage.py),
|
||||||
ou être consulté en ligne de commande (où il est délivré brut) :
|
ou être consulté en ligne de commande (où il est délivré brut) :
|
||||||
|
|
||||||
```
|
```
|
||||||
$ curl https://p.afpy.org/g3LE
|
$ curl https://p.afpy.org/manage.py
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
Loading…
Reference in New Issue