Fișiere media
Gestionare fișiere
Cum să obții, ștergi și conectezi fișierele media cu external ID
După încărcarea fișierelor media poți obține informații despre ele, le poți șterge și gestiona external ID.
Obține informații despre fișier
După ID
const response = await fetch('https://crm.rentix.md/api/v1/media/123', {
headers: {
'Authorization': 'ApiKey YOUR_API_KEY'
}
});
const media = await response.json();
console.log(media);
curl https://crm.rentix.md/api/v1/media/123 \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/media/123');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$media = json_decode($response, true);
După external ID
const response = await fetch('https://crm.rentix.md/api/v1/media/external/apt-001-photo-1', {
headers: {
'Authorization': 'ApiKey YOUR_API_KEY'
}
});
const media = await response.json();
console.log(media);
curl https://crm.rentix.md/api/v1/media/external/apt-001-photo-1 \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/media/external/apt-001-photo-1');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$media = json_decode($response, true);
Răspuns
{
"id": 123,
"externalId": "apt-001-photo-1",
"size": 245000,
"contentType": "image/jpeg",
"optimization": "success",
"blurhash": "L7HuX^zY1z-6ADx?0z2@1Io#{yV_",
"originalUrl": "https://storage.../original.jpg",
"variants": [
{ "url": "https://storage.../128.webp", "variantSize": "128", "size": 4074 },
{ "url": "https://storage.../512.webp", "variantSize": "512", "size": 32850 },
{ "url": "https://storage.../1024.webp", "variantSize": "1024", "size": 98500 }
]
}
| Câmp | Descriere |
|---|---|
id | ID-ul intern al fișierului |
externalId | ID-ul tău din CRM (dacă a fost indicat) |
size | Dimensiunea originalului în bytes |
contentType | Tipul MIME al fișierului |
optimization | Statusul optimizării |
blurhash | String pentru generarea placeholder-ului |
originalUrl | URL-ul fișierului original |
variants | Versiuni optimizate de diferite dimensiuni |
Șterge fișierul
Ștergerea eliberează spațiu și elimină fișierul din toate anunțurile unde era folosit.
După ID
const response = await fetch('https://crm.rentix.md/api/v1/media/123', {
method: 'DELETE',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY'
}
});
const result = await response.json();
console.log(result); // { deleted: true }
curl -X DELETE https://crm.rentix.md/api/v1/media/123 \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/media/123');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
Răspuns
{
"deleted": true
}
După external ID
const response = await fetch('https://crm.rentix.md/api/v1/media/external/apt-001-photo-1', {
method: 'DELETE',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY'
}
});
const result = await response.json();
console.log(result); // { deleted: true, mediaId: 123 }
curl -X DELETE https://crm.rentix.md/api/v1/media/external/apt-001-photo-1 \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/media/external/apt-001-photo-1');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
Răspuns
{
"deleted": true,
"mediaId": 123
}
Ștergerea este ireversibilă. Dacă fișierul este legat de anunțuri, va fi dezlegat de ele.
Gestionarea external ID
Leagă external ID
Dacă fișierul a fost încărcat fără external ID, îl poți adăuga ulterior:
const response = await fetch('https://crm.rentix.md/api/v1/media/123/link', {
method: 'POST',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ externalId: 'apt-001-photo-1' })
});
const result = await response.json();
console.log(result); // { mediaId: 123, externalId: 'apt-001-photo-1', linked: true }
curl -X POST https://crm.rentix.md/api/v1/media/123/link \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "externalId": "apt-001-photo-1" }'
$data = ['externalId' => 'apt-001-photo-1'];
$ch = curl_init('https://crm.rentix.md/api/v1/media/123/link');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
Răspuns
{
"mediaId": 123,
"externalId": "apt-001-photo-1",
"linked": true
}
Dezleagă external ID
const response = await fetch('https://crm.rentix.md/api/v1/media/123/link', {
method: 'DELETE',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY'
}
});
const result = await response.json();
console.log(result); // { mediaId: 123, externalId: 'apt-001-photo-1', unlinked: true }
curl -X DELETE https://crm.rentix.md/api/v1/media/123/link \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/media/123/link');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
Răspuns
{
"mediaId": 123,
"externalId": "apt-001-photo-1",
"unlinked": true
}
Statusuri optimizare
După încărcare, fișierul trece prin optimizare. Verifică câmpul optimization:
| Status | Descriere | Acțiune |
|---|---|---|
pending | În coadă | Așteaptă |
in_progress | Se procesează | Așteaptă |
success | Gata | Poți folosi |
failed | Eroare | Încarcă alt fișier |
La legarea la anunț, sistemul așteaptă automat finalizarea optimizării.
Erori frecvente
| Eroare | Cauză | Soluție |
|---|---|---|
External ID already linked | ID-ul este deja folosit de alt fișier | Folosește un ID unic |
File already has external ID | Fișierul are deja un external ID | Mai întâi dezleagă-l pe cel curent |
File not found | Fișierul nu există sau aparține altei agenții | Verifică ID-ul |