code
DveloxSoft Bucket Guías de integración para desarrolladores

Inicio

Bucket es un servicio de almacenamiento de archivos organizado en contenedores. Esta guía te ayuda a crear un contenedor, entender las cuotas, subir archivos y acceder a ellos mediante la API o código.

Requisitos previos

  • URL base: https://bucket.dveloxsoft.com/api/
  • Autenticación: Clave API (maestra o por contenedor).
  • Un slug de contenedor para dirigir las operaciones de carga y archivos.

Paso 1: Crea un contenedor

Los contenedores son la unidad de almacenamiento de nivel superior. Elige un tipo de visibilidad al crearlo:

  • private: solo los propietarios autenticados o claves API autorizadas pueden acceder a los archivos.
  • public: los archivos se pueden obtener sin autenticación mediante GET /files/:slug/*path.
typescript
const response = await fetch('https://bucket.dveloxsoft.com/api/containers', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'ApiKey <api_key>'
  },
  body: JSON.stringify({
    name: 'my-bucket',
    type: 'private'
  })
});

const container = await response.json();
console.log('Container created:', container.slug);

Paso 2: Entiende las cuotas

Cada cuenta tiene un límite de almacenamiento y un número máximo de archivos. Consulta el uso antes de operaciones masivas:

typescript
const response = await fetch('https://bucket.dveloxsoft.com/api/cuota/usage', {
  headers: {
    'Authorization': 'ApiKey <api_key>'
  }
});

const quota = await response.json();
console.log('Storage used:', quota.formattedUsed, 'of', quota.formattedLimit);
console.log('Files count:', quota.fileCountUsed, '/', quota.fileCountLimit);

Paso 3: Sube un archivo

Los archivos de menos de 500 MB se pueden subir en una sola solicitud. Los archivos más grandes usan cargas divididas en partes de 10 MB.

typescript
const formData = new FormData();
formData.append('file', fileInput.files[0]);

const response = await fetch(`https://bucket.dveloxsoft.com/api/files/${containerSlug}/path/to/file.txt`, {
  method: 'POST',
  headers: {
    'Authorization': 'ApiKey <api_key>'
  },
  body: formData
});

const result = await response.json();
console.log('Uploaded:', result.path, result.size, 'bytes');

Paso 4: Accede a un archivo

Lista directorios, descarga archivos o transmítelos directamente. Los contenedores públicos permiten lecturas sin autenticación.

typescript
// List directory
const list = await fetch(`https://bucket.dveloxsoft.com/api/files/${containerSlug}/path/to/folder`, {
  headers: { 'Authorization': 'Bearer <jwt_token>' }
});
const listing = await list.json();
console.log('Items:', listing.items)

// Download file (browser handles stream)
window.open(`https://bucket.dveloxsoft.com/api/files/${containerSlug}/path/to/file.txt`, '_blank');