← Images / images / storage / upload-images
Přijímání obrázků nahraných uživateli
Funkce Direct Creator Upload ve službě Cloudflare Images umožňuje uživatelům nahrávat obrázky pomocí jednorázové adresy URL pro nahrání, aniž by byl klientovi vystaven váš API klíč nebo token. Použití direct creator upload zároveň odstraňuje potřebu prostředního úložiště a s ním spojené náklady na úložiště a odchozí přenos dat.
Můžete nastavit webhooky k přijímání oznámení o vašem Direct Creator Upload workflow.
Vyžádejte si jednorázovou URL adresu pro nahrání
Vytvořte POST požadavek na direct_upload koncový bod podle příkladu níže.
curl --request POST \
https://api.cloudflare.com/client/v4/accounts/{account_id}/images/v2/direct_upload \
--header "Authorization: Bearer <API_TOKEN>" \
--form 'requireSignedURLs=true' \
--form 'metadata={"key":"value"}'Po úspěšném požadavku obdržíte odpověď podobnou následujícímu příkladu. id pole je budoucí identifikátor obrázku, který nahraje tvůrce.
{
"result": {
"id": "2cdc28f0-017a-49c4-9ed7-87056c83901",
"uploadURL": "https://upload.imagedelivery.net/Vi7wi5KSItxGFsWRG2Us6Q/2cdc28f0-017a-49c4-9ed7-87056c83901"
},
"result_info": null,
"success": true,
"errors": [],
"messages": []
}Po zavolání tohoto endpointu se vytvoří nový návrh záznamu obrázku, ten se však v seznamu obrázků nezobrazí. Chcete-li zkontrolovat stav záznamu obrázku, můžete odeslat požadavek na jednorázovou adresu URL pro nahrání pomocí direct_upload koncový bod.
Zkontrolujte stav záznamu obrázku
Chcete-li zkontrolovat stav nového konceptu záznamu obrázku, použijte jednorázovou URL adresu pro nahrání, jak je uvedeno v příkladu níže.
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/images/v1/{image_id} \
--header "Authorization: Bearer <API_TOKEN>"Po úspěšném požadavku byste měli obdržet odpověď podobnou následujícímu příkladu. draft pole je nastaveno na true dokud tvůrce obsahu nenahraje obrázek. Po nahrání obrázku je pole draft odstraněno.
{
"result": {
"id": "2cdc28f0-017a-49c4-9ed7-87056c83901",
"metadata": {
"key": "value"
},
"uploaded": "2022-01-31T16:39:28.458Z",
"requireSignedURLs": true,
"variants": [
"https://imagedelivery.net/Vi7wi5KSItxGFsWRG2Us6Q/2cdc28f0-017a-49c4-9ed7-87056c83901/public",
"https://imagedelivery.net/Vi7wi5KSItxGFsWRG2Us6Q/2cdc28f0-017a-49c4-9ed7-87056c83901/thumbnail"
],
"draft": true
},
"success": true,
"errors": [],
"messages": []
}Koncový bod backendu by měl vrátit uploadURL klientovi, který obrázek nahraje, aniž by musel předávat jakékoli ověřovací údaje.
Níže je příklad HTML stránky, která přijme jednorázovou URL adresu pro nahrání a odešle libovolný obrázek vybraný uživatelem.
<!DOCTYPE html>
<html>
<body>
<form
action="INSERT_UPLOAD_URL_HERE"
method="post"
enctype="multipart/form-data"
>
<input type="file" id="myFile" name="file" />
<input type="submit" />
</form>
</body>
</html>Ve výchozím nastavení uploadURL platnost vyprší po 30 minutách nečinnosti. Chcete-li toto nastavení přepsat, přidejte do příkazu cURL následující argument:
--data '{"expiry":"2021-09-14T16:00:00Z"}'Hodnota expirace musí ležet v budoucnosti minimálně dvě minuty a maximálně šest hodin od aktuálního času.
Direct Creator Upload s vlastním ID
Můžete zadat vlastní ID při první žádosti o jednorázovou URL pro nahrání, místo použití automaticky vygenerovaného ID pro váš obrázek. Obrázky s vlastním ID nelze nastavit jako soukromé pomocí tokeny podepsaných URL adres funkce (--requireSignedURLs=true).
Chcete-li zadat vlastní ID, předejte pole formuláře s názvem ID a odpovídající hodnotou vlastního ID, jak je uvedeno v příkladu níže.
--form 'id=this/is/my-customid'