Dosyalar

Bu doküman aşağıdaki uç noktalarını içerir:

  1. Dosyaları uygulamanın farklı bölümlerine yükleme

  2. Projelerde dosyalar özelliği

Yükleme ve İndirme

Dosyalar görevlere, görev aktivitelerine, sohbet mesajlarına, müşterilere ve dosyalar sayfasına yüklenebilir. Tüm bu işlemler için öncelikle dosyayı yüklemek için istek göndermeniz gerekmektedir. Yükleme tamamlandıktan sonra, sunucu yüklenen dosyanın ID'sini döndürür. Ardından, bu ID değerini diğer API uç noktalarında kullanabilirsiniz.

Dosya Yükle

POST https://cubicl.io/api/v1/files/upload

Daha sonra kullanmak üzere bir dosya yükler. Kaydedilen dosyanın ayrıntılarını döndürür.

Diğer API adreslerinden farklı olarak, bu adres multipart/form-data isteğini kabul eder. Content-Length başlığı form verisinin boyutuna ayarlanmalıdır.

4 GB boyutuna kadar dosya yüklenebilir.

Request Body

NameTypeDescription

file

blob

Dosya içeriği ve dosya adı

File

İndirme Bağlantısı Al

GET https://cubicl.io/api/v1/files/:id/url

Cubicl'e yüklenen dosyalara izinsiz erişim sağlanamaz.

Bir dosyayı indirmek için bir indirme bağlantısı istemeniz gerekir.

Ardından, dosyayı indirmek için döndürülen bağlantıya bir HTTP isteği gönderebilirsiniz. Linklerin süresi 5 dakikadır. Bundan sonra, başka bir bağlantı almanız gerekir.

Path Parameters

NameTypeDescription

id*

string

Dosya ID'si

string

Dosya Sayfası Uç Noktaları

Bu uç noktalar, bir projenin ve bir müşterinin Dosyalar sayfasındaki dosya ve klasörleri görüntülemenize, oluşturmanıza, düzenlemenize ve silmenize olanak tanır.

Cubicl, hem projeler hem de müşteriler için dosya ve dizinleri düzenlemenizi sağlar.

Dosyalar sayfasının yapısı, bir bilgisayardaki veya Google Drive gibi diğer dosya depolama hizmetlerindeki dosya sistemine benzer. İç içe geçmiş dosya ve dizin düğümlerinden oluşur. En üstte bir kök dizin düğümü bulunur. Dizinler alt dosya ve dizin düğümlerini tutar. Dosya düğümleri, Dosya Yükle uç noktasından döndürülen dosya kaydıyla aynı değildir. Dosya düğümü kayıtları, dosya kayıtlarına işaret eder.

Düğümleri Getir

GET https://cubicl.io/api/v1/file-system-nodes

Bir dizindeki dosya ve dizin düğümlerini alır. İstek, 'group' veya 'customer' parametreleri ile gönderilmelidir.

Query Parameters

NameTypeDescription

group

string

Proje ID'si

customer

string

Müşteri ID'si

parent

string

Aranacak dizinin ID'si

Kök dizin için 'null' kullanın.

Belirtilmezse, tüm dizinlerde arama yapar.

search

string

Dosya ve dizin adlarında aranacak metin

FileSystemNode[]

Dosya Ekle

POST https://cubicl.io/api/v1/file-system-nodes/files

Yüklenen dosyalar için dosya düğümleri oluşturur.

Dosyalar, bir projenin veya müşterinin dosyalar sayfasında oluşturulabilir. group veya customer parametresi ayarlanmalıdır.

Request Body

NameTypeDescription

group

string

Proje ID'si, eğer dosya bir projenin dosyalar sayfasında oluşturuluyorsa.

customer

string

Müşteri ID'si, eğer dosya müşterinin dosya sayfasında oluşturuluyorsa.

parent*

string | null

Üst dizin ID'si

Üst dizin kök dizin ise 'null' olmalı.

files*

string

Dosyaların ID listesi

FileSystemNode[]

Dizin Ekle

POST https://cubicl.io/api/v1/file-system-nodes/directories

Bir dizin düğümü oluşturur.

Dosyalar, bir projenin veya müşterinin dosyalar sayfasında oluşturulabilir. group veya customer parametresi ayarlanmalıdır.

Request Body

NameTypeDescription

group

string

Proje ID'si, eğer dosya bir projenin dosyalar sayfasında oluşturuluyorsa.

customer

string

Müşteri ID'si, eğer dosya müşterinin dosya sayfasında oluşturuluyorsa.

parent

string | null

Üst dizin ID'si

Üst dizin kök dizin ise 'null' olmalı.

name*

string

Dizin adı

FileSystemNode

Düğümleri Sil

DELETE https://cubicl.io/api/v1/file-system-nodes

Bir projeden veya müşteriden dosya ve dizin düğümlerini siler.

Dosya düğümleri, dosya kayıtları ve yüklenen dosya ile birlikte silinir.

Farklı projelerden veya istemcilerden birden çok düğüm, tek bir istekte silinemez.

Request Body

NameTypeDescription

nodes*

string[]

Düğüm ID'lerinin listesi

Veriler

Dosya

type File = {
    _id: string;
    name: string;
    // Dosya desteklenen bir resimse, küçük resim URL'ine ait bağlantı
    thumbnail?: string;
    // Dosya Google Drive'dan eklenmişse
    google?: {
        id: string;
        extension: string;
        webViewLink: string;
        mimeType: string;
    },
    // Dosya Dropbox'tan eklenmişse
    dropbox?: {
        id: string;
        webViewLink: string;
    }
}

File System Node

type FileSystemNode = {
    _id : string;
    // Üst dizin ID'si. Üst dizin, kök dizin olduğunda 'null' olmalıdır.
    parent: string | null;
    group?: string; // Proje ID'si
    customer?: string; // Müşteri ID'si
    type: 'f' | 'd'; // Tip > f : dosya, d : dizin
    file: File | null; // Tip 'f' ise dosya, d ise 'null' olmalıdır.
    // Tip 'd' olduğunda ayarlanmalıdır. Tip 'f' ise, 'file' alanından adı alın.
    name?: string;
    createdAt: number;
}

Last updated