🔃 Update File

Endpoint to update information about a specific file based on its UID.

  • HTTP Method: PUT

  • Route: /public-api/v1/files/:uid

  • Headers:

    • api-key: Token generated through the API key section.

  • Request Body:

    • Multipart Form:

      • file: The file to be updated.

      • root (optional): Specifies the root directory for file storage. If not provided, the default root is used ("/").

Query Parameters

  • uid: The unique identifier (UID) of the file to update.

Response

  • Status Code: 200 OK

  • Response Body:

    {
      "status": "success",
      "files": [
        {
          "ID": 1,
          "Name": "example.txt",
          "UID": "unique_id",
          "Root": "/",
          "CID": "QmXqwe12...",
          "Mime": "text/plain",
          "Size": 1024,
          "EncryptionStatus": "public",
          "CreatedAt": "2023-01-01T12:00:00Z",
          "UpdatedAt": "2023-01-01T12:00:00Z"
        }
        // ... additional file objects if multiple files are updated
      ]
    }

Error Responses

  • Entity Not Found (404):

    • If the file with the specified UID does not exist.

Example in JavaScript:

Using Fetch API:

const url = 'base_url/public-api/v1/files/your_file_uid';
const apiKey = 'your_api_key';
const inputFile = document.getElementById("file-input"); 

inputFile.addEventListener("change", handleFileUpdate);

function handleFileUpdate(event) {
  const file = event.target.files[0];

  if (file) {
    const formData = new FormData();
    formData.append("file", file);
    formData.append("root", "/");

    const options = {
      headers: {
        'api-key': apiKey,
      },
      method: "PUT",
      body: formData,
    };

    fetch(url, options)
      .then((response) => {
        if (!response.ok) {
          if (response.status === 404) {
            console.error('File not found.');
          } else {
            throw new Error(`Network error: ${response.status}`);
          }
        }
        return response.json();
      })
      .then((data) => {
        console.log(data);
      })
      .catch((error) => {
        console.error('There was a problem with the Fetch request:', error);
      });
  }
}

Using Axios:

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const url = 'base_url/public-api/v1/files/your_file_uid';
const apiKey = 'your_api_key';
const filePath = 'file_path'; 

fs.readFile(filePath, (err, data) => {
  if (err) {
    console.error('Error reading the file:', err);
    return;
  }

  const formData = new FormData();
  formData.append('file', data, { filename: 'name of the file' });
  formData.append('root', '/');

  axios.put(url, formData, {
    headers: {
      ...formData.getHeaders(),
      'api-key': apiKey,
    },
  })
    .then((response) => {
      console.log(response.data);
    })
    .catch((error) => {
      if (error.response.status === 404) {
        console.error('File not found.');
      } else {
        console.error('There was a problem with the Axios request:', error);
      }
    });
});

Last updated