Usar Box via API

    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"
    

    Leave a Reply

    Your email address will not be published. Required fields are marked *