Si tenemos o queremos usar Box como aplicación tipo Cloud Storage de respaldo, podemos automatizar ciertas tareas gracias a su API.
Para ello, accederemos a Box Developers para realizar la creación del Token correspondiente.
Accedemos a Create New App
Seleccionaremos la opción Custom App > App Name: APP01 > Server Authentication (with JWT) > Create App
Al finalizar, entrará directamente a la aplicación y recuperaremos el Developer Token
Para validar que efectivamente nos funciona, vamos a ejecutar lo siguiente:
root@node01:~# curl -s https://api.box.com/2.0/users/me -H "Authorization: Bearer 1HrZa5vxz0uH7eM2OI3q4x1GIOE1JTmu" | jq
{
"type": "user",
"id": "10738291953",
"name": "Guifre",
"login": "[email protected]",
"created_at": "2019-11-27T03:22:35-08:00",
"modified_at": "2024-04-30T06:14:34-07:00",
"language": "en",
"timezone": "America/Los_Angeles",
"space_amount": 10737418240,
"space_used": 455854,
"max_upload_size": 2147483648,
"status": "active",
"job_title": "",
"phone": "",
"address": "",
"avatar_url": "https://app.box.com/api/avatar/large/10738291953",
"notification_email": null
}
Bien! Tenemos conexión.
Ahora vamos a realizar operaciones básicas:
Crear una carpeta, llamada FILES, en la raiz:
curl -i -X POST "https://api.box.com/2.0/folders" \
-H "authorization: Bearer 1HrZF5vxz0uH7eMvOI3qrx1GIOE1JTmu" \
-H "content-type: application/json" \
-d '{
"name": "FILES",
"parent": {
"id": "0"
}
}'
El resultado:
En resultado anterior, nos devolverá el id de la carpeta, pero siempre lo podemos ubicar con el siguiente comando, en este caso será para el item FILES
curl -s https://api.box.com/2.0/folders/0 -H "Authorization: Bearer 1HrZF5vxz0uH7eMvOI3qrx1GIOE1JTmu" | jq '.item_collection.entries'
[
{
"type": "folder",
"id": "261459136086",
"sequence_id": "0",
"etag": "0",
"name": "FILES"
},
{
"type": "folder",
"id": "107171509346",
"sequence_id": "0",
"etag": "0",
"name": "My Box Notes"
}
]
Ahora, vamos a crear un fichero, llamado file.txt dentro de la carpeta anteriormente creada, FILES:
curl -i -X POST https://upload.box.com/api/2.0/files/content \
-H 'Authorization: Bearer cRyLs71ZAORyZ1Eru1lDHc4GfN8b1btYo' \
-H "Content-Type: multipart/form-data" \
-F attributes='{"name":"file.txt", "parent":{"id":"261459136086"}}' \
-F [email protected]
El resultado:
Para eliminar un fichero:
curl -i -X DELETE "https://api.box.com/2.0/files/1517671197460" -H "authorization: Bearer U6Uwn5fesl8plmHVbgIpWFP3zIWRzbPH"
Para eliminar una carpeta:
curl -i -X DELETE "https://api.box.com/2.0/folders/261459136086" -H "authorization: Bearer U6Uwn5fesl8plmHVbgIpWFP3zIWRzbPH"