Cloudflare API referansı
Bir bakışta
“Bir bakışta” başlıklı bölümBu NextPDF\Cloudflare paketi, uçta işleme için köprü görevi görür. PHP süreciniz Hypertext Markup Language (HTML) içeriğini tutar; başsız tarayıcıyı ise bir Cloudflare Worker çalıştırır. Paket; Worker destekli bir HTML işleyicisini (CloudflareHtmlRenderer) ve döndürdüğü değer nesnelerini, işleme uç noktaları için bir istek koruması katmanını (ApiProtection), işlenmiş Portable Document Format (PDF) dosyaları için bir R2 arşiv hizmetini (R2ArchiveManager) ve Transport Layer Security (TLS) ile Domain Name System (DNS) sıkılaştırması için sabitlenmiş aktarım yardımcılarını sunar. Yapılandırma, üç değişmez nesnede tutulur (CloudflareRendererConfig, ApiProtectionConfig, R2ArchiveConfig).
Başlamak için bir CloudflareRendererConfig oluşturun, bunu CloudflareHtmlRenderer içine bağlayın ve render() çağrısını yapın. Bu çağrı, HTML’inizi Worker’a gönderir ve PDF baytlarıyla birlikte bir CloudflareRenderResult döndürür. Koruma, arşivleme ve sabitleme bu çağrının çevresinde katmanlanır.
Yaygın görevler
“Yaygın görevler” başlıklı bölümBu kod parçacıkları, büyük olasılıkla kullanacağınız iş akışlarını kapsar. Her biri bağımsız çalışır, src/Cloudflare/ kaynak koduna göre doğrulanmıştır ve gizli değerleri ortamdan okur.
Standart çağrıyla bir HTML dizesini uç noktada PDF olarak işleyin:
<?php
declare(strict_types=1);
use GuzzleHttp\Client;use GuzzleHttp\Psr7\HttpFactory;use NextPDF\Cloudflare\CloudflareHtmlRenderer;use NextPDF\Cloudflare\CloudflareRendererConfig;
$httpFactory = new HttpFactory();
$renderer = new CloudflareHtmlRenderer( config: new CloudflareRendererConfig( workerUrl: 'https://pdf-renderer.example.workers.dev/render', apiToken: getenv('CF_PDF_TOKEN') ?: throw new RuntimeException('CF_PDF_TOKEN not set'), ), httpClient: new Client(), requestFactory: $httpFactory, streamFactory: $httpFactory, responseFactory: $httpFactory,);
$result = $renderer->render('<h1>Hello from the edge</h1>', widthPt: 595.28);
if ($result->isValid()) { file_put_contents('output.pdf', $result->pdfData);}Ne yapar: HTML’i Hypertext Transfer Protocol Secure (HTTPS) üzerinden Worker’a gönderir ve isValid() gerçek bir PDF olduğunu doğruladıktan sonra döndürülen A4 PDF baytlarını diske yazar.
İşlenmiş bir PDF’i R2’ye arşivleyin ve kısa ömürlü bir bağlantı döndürün:
<?php
declare(strict_types=1);
use NextPDF\Cloudflare\R2ArchiveConfig;use NextPDF\Cloudflare\R2ArchiveManager;
$archive = new R2ArchiveManager( config: R2ArchiveConfig::fromArray([ 'bucket_name' => 'pdf-archive', 'account_id' => getenv('CF_ACCOUNT_ID') ?: '', 'access_key_id' => getenv('R2_ACCESS_KEY_ID') ?: '', 'secret_access_key' => getenv('R2_SECRET_ACCESS_KEY') ?: '', ]), httpClient: $httpClient, // PSR-18 ClientInterface requestFactory: $requestFactory, // PSR-17 RequestFactoryInterface streamFactory: $streamFactory, // PSR-17 StreamFactoryInterface);
$upload = $archive->upload($result->pdfData, 'invoice-1234.pdf');
$signedUrl = $upload->isValid() ? $archive->generateSignedUrl($upload->key, expiresInSeconds: 600) : null;Ne yapar: PDF baytlarını tarihe göre bölümlenmiş bir R2 anahtarına yükler ve başarılı olursa geçici indirme için 10 dakikalık, önceden imzalanmış bir uniform resource locator (URL) oluşturur.
Bir işleme uç noktasını, maliyetli Worker işini başlatmadan önce koruyun:
<?php
declare(strict_types=1);
use NextPDF\Cloudflare\ApiKeyValidator;use NextPDF\Cloudflare\ApiProtection;use NextPDF\Cloudflare\ApiProtectionConfig;
$protection = new ApiProtection( config: new ApiProtectionConfig(maxRequestsPerMinute: 30), keyValidator: new ApiKeyValidator([getenv('RENDER_API_KEY') ?: '']),);
$decision = $protection->checkRequest( clientId: $clientIp, payloadSize: strlen($html), apiKey: $presentedApiKey,);
if (!$decision->allowed) { // Reject with 429 and rate-limit headers before any render call. return [429, $decision->toHeaders(), $decision->denialReason];}Ne yapar: API anahtarını ve yük boyutunu doğrular, istemci başına oran sınırını denetler ve istek reddedildiğinde eklenecek yanıt başlıklarını tek bir kararla döndürür.
İşleyici
“İşleyici” başlıklı bölümBu tablo, temel işleyici yüzeyini kapsar. Yapılandırmayı oluştururken, işleyiciyi kurarken veya işleme ve erişilebilirlik çağrıları yaparken bunu kullanın.
| Simge | Parametreler | Varsayılan davranış | Döndürür | Şu durumlarda hata fırlatır veya başarısız olur | Notlar |
|---|---|---|---|---|---|
new CloudflareRendererConfig(string $workerUrl, string $apiToken, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, ?string $r2FontBucket = null, bool $fallbackToLocal = true, array $pinnedPublicKeys = [], array $backupPublicKeys = []) | Worker URL’si, taşıyıcı belirteç, zaman aşımı, Cascading Style Sheets (CSS), boyut sınırı, isteğe bağlı R2 yazı tipi paketi, yedek bayrağı, sabitleme kümeleri. | Yerel yedek etkindir; sabitleme dizileri boşken sabitleme kapalıdır. | CloudflareRendererConfig | Beklenmez. | API belirtecini gizli tutun; HTTPS Worker URL’lerini tercih edin. |
CloudflareRendererConfig::fromArray(array $config) | worker_url, api_token, render_timeout, default_css, max_html_size, r2_font_bucket, fallback_to_local, sabitleme dizileri. | Eksik isteğe bağlı anahtarlar, kurucu varsayılanlarını kullanır. | CloudflareRendererConfig | Beklenmez. | Çerçeve tarzı yapılandırma dizileri için kullanın. |
CloudflareRendererConfig::isValid() | yok. | Boş olmayan bir Worker URL’si ve API belirteci gerektirir. | bool | Beklenmez. | Geçersiz bir yapılandırma, işleyicide yedeğe geçmeyi ya da başarısızlığı tetikler. |
CloudflareRendererConfig::allPublicKeyPins() | yok. | Birincil ve yedek açık anahtar sabitlemelerini birleştirir. | list<string> | Beklenmez. | Boş bir liste sabitlemeyi devre dışı bırakır. |
new CloudflareHtmlRenderer(CloudflareRendererConfig $config, ClientInterface $httpClient, RequestFactoryInterface $requestFactory, StreamFactoryInterface $streamFactory, ?LoggerInterface $logger = null, ?LocalRendererFactoryInterface $localRendererFactory = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null, ?ResponseFactoryInterface $responseFactory = null) | Yapılandırma, PHP Standards Recommendation (PSR) Hypertext Transfer Protocol (HTTP) bağımlılıkları, isteğe bağlı günlükleyici, isteğe bağlı yerel yedek fabrikası, isteğe bağlı HTML ilkesi, isteğe bağlı yanıt fabrikası. | HTML ilkesi sağlanmadığında DefaultHtmlSecurityPolicy ilkesini kullanır. | CloudflareHtmlRenderer | Konteyner bağlama hataları. | Yanıt fabrikası, gerektiğinde sabitlenmiş cURL aktarımını etkinleştirir. |
CloudflareHtmlRenderer::render(string $html, float $widthPt = 595.28, float $heightPt = 0, array $fontFiles = []) | HTML, sayfa genişliği, sayfa yüksekliği, R2’deki yazı tipi dosyaları. | A4 genişliği, otomatik yükseklik, yazı tipi dosyası yok. | CloudflareRenderResult | CloudflareNotAvailableException, CloudflareRenderException, doğrulama başarısızlıkları. | Ağ input/output (G/Ç) işleminden önce HTML boyutunu ve Worker URL’sini doğrular. |
CloudflareHtmlRenderer::getHtmlSecurityPolicy() | yok. | Yapılandırılmış ayrıştırma katmanı ilkesini döndürür. | HtmlSecurityPolicyInterface | Beklenmez. | Uç nokta koruması ve Worker URL doğrulamasıyla birlikte kullanın. |
CloudflareHtmlRenderer::isAvailable() | yok. | Yapılandırma geçerli olduğunda Worker’a bir HEAD isteği gönderir. | bool | Hatalarda false döndürür. | Hazırlık denetimleri için kullanın; tek başına çalışma zamanı koruması olarak kullanmayın. |
İşleyici değer nesneleri ve güvenlik
“İşleyici değer nesneleri ve güvenlik” başlıklı bölümBu tabloyu, istek ve sonuç değer nesneleri (CloudflareRenderResult, CloudflareRenderPayload) ile ağ G/Ç işleminden önce HTML’i, Worker URL’sini ve DNS sabitlemelerini doğrulayan statik aktarım katmanı denetimleri için kullanın.
| Simge | Parametreler | Varsayılan davranış | Döndürür | Şu durumlarda hata fırlatır veya başarısız olur | Notlar |
|---|---|---|---|---|---|
new CloudflareRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightPx = 0.0, string $renderLocation = '', float $renderTimeMs = 0.0) | PDF baytları, genişlik, yükseklik, ölçülen içerik yüksekliği, uç konumu, işleme süresi. | Worker bildirmediğinde üst veriler boştur. | CloudflareRenderResult | Beklenmez. | Genellikle CloudflareResponseParser::parse() tarafından döndürülür. |
CloudflareRenderResult::isValid() | yok. | PDF üstbilgisiyle başlayan ve boş olmayan PDF baytlarını denetler. | bool | Beklenmez. | Arşivlemeden ya da baytları başka bir katmana geçirmeden önce kullanın. |
CloudflareRenderResult::size() | yok. | İşlenmiş PDF baytlarını sayar. | int | Beklenmez. | Kota ve denetim mantığına aktarın. |
new CloudflareRenderPayload(string $html, float $widthPt, float $heightPt = 0, string $defaultCss = '', ?string $r2FontBucket = null, array $fontFiles = []) | HTML, boyut, CSS, isteğe bağlı R2 yazı tipi paketi, yazı tipi dosya listesi. | Otomatik yükseklik, varsayılan CSS yok, R2 yazı tipi paketi yok, yazı tipi dosyası yok. | CloudflareRenderPayload | Beklenmez. | İstek yükü değer nesnesi. |
CloudflareRenderPayload::toJson() | yok. | Worker için HTML, boyut, CSS ve yazı tipi başvurularını JavaScript Object Notation (JSON) olarak serileştirir. | string | JSON kodlama hataları. | Düşük düzeyli istek yükü API’si. |
CloudflareResponseParser::parse(ResponseInterface $response, float $requestedWidthPt) | Worker yanıtı ve istenen genişlik. | İkili PDF yanıtlarını ve yapılandırılmış JSON yanıtlarını kabul eder. | CloudflareRenderResult | CloudflareRenderException, başarısız ya da geçersiz Worker çıktısı için. | İşleyici tarafından kullanılan merkezi ayrıştırıcı. |
CloudflareSecurityPolicy::validate(string $html, int $maxSize) | HTML girdisi ve boyut sınırı. | Paketin HTML girdi ilkesini uygular. | void | Doğrulama istisnası. | Güvenilmeyen girdi denetimlerini Worker sınırının dışında tutun. |
CloudflareSecurityPolicy::validateWorkerUrl(string $url) | Worker URL’si. | Hedefi ayrıştırır ve doğrular. | array | Doğrulama istisnası. | Güvenli olmayan uç nokta biçimlerini ağ G/Ç işleminden önce engeller. |
CloudflareSecurityPolicy::assertPinsStillValid(string $host, array $pinnedIps) | Ana makine ve sabitlenmiş IP listesi. | Beklenen DNS sabitlemelerini doğrular. | void | Sabitlemeler eskidiğinde ya da geçersiz olduğunda doğrulama istisnası. | Sabitlenmiş dağıtımlar için operasyonel denetimler sırasında kullanın. |
API koruması
“API koruması” başlıklı bölümBir işleme uç noktasını korurken bu tabloyu kullanın: API anahtarı doğrulaması, yük boyutu ve oran sınırı denetimleri ile bunların ürettiği sonuç ve başlık nesneleri.
| Simge | Parametreler | Varsayılan davranış | Döndürür | Şu durumlarda hata fırlatır veya başarısız olur | Notlar |
|---|---|---|---|---|---|
new ApiProtection(ApiProtectionConfig $config, ?ApiKeyValidator $keyValidator = null, ?Closure $clock = null) | Koruma yapılandırması, isteğe bağlı anahtar doğrulayıcı, isteğe bağlı saat. | Saat sağlanmadığında sistem saatini kullanır. | ApiProtection | Beklenmez. | Testlerde belirlenimci bir saat enjekte edin. |
ApiProtection::checkRequest(string $clientId, int $payloadSize, string $apiKey = '') | İstemci tanımlayıcısı, yük boyutu, isteğe bağlı API anahtarı. | Boş API anahtarına yalnızca yapılandırma anahtar gerektirmediğinde izin verilir. | ApiProtectionResult | Beklenmez. | API anahtarını ve boyutu denetler, ardından oran sınırını uygular. |
ApiProtection::getRateLimit(string $clientId) | İstemci tanımlayıcısı. | Bir isteği kaydetmez. | RateLimitResult | Beklenmez. | Oran sınırı başlıkları eklemek için kullanın. |
new ApiKeyValidator(array $validKeys = []) | Geçerli düz metin anahtarların listesi. | Boş bir liste tüm anahtarları reddeder. | ApiKeyValidator | Beklenmez. | Gizli değerleri kodun dışında saklayın ve yapılandırma aracılığıyla doldurun. |
ApiKeyValidator::validate(string $key) | Ham anahtar. | Yapılandırılmış düz metin anahtarlarla zamanlama açısından güvenli mantık kullanarak karşılaştırır. | bool | Beklenmez. | Parametre hassastır; ham anahtarları günlüğe yazmayın. |
ApiKeyValidator::addKey(string $key) | Ham anahtar. | Yeni bir doğrulayıcı örneğine karmalanmış bir anahtar ekler. | self | Beklenmez. | Döndürülen örneği güncellenmiş doğrulayıcı olarak değerlendirin. |
ApiKeyValidator::revokeKey(string $key) | Ham anahtar. | Eşleşen karmayı yeni bir doğrulayıcı örneğinden kaldırır. | self | Beklenmez. | Döndürülen örneği güncellenmiş doğrulayıcı olarak değerlendirin. |
ApiKeyValidator::hashKey(string $key) | Ham anahtar. | Saklanan karma gösterimini üretir. | string | Beklenmez. | Karmaları günlüklerde ya da istemci yanıtlarında açığa çıkarmayın. |
ApiKeyValidator::validateHashed(string $key, array $hashedKeys) | Ham anahtar ve aday karmalar. | Sağlanan karmalarla sabit zamanda karşılaştırır. | bool | Beklenmez. | Özel anahtar depoları için düşük düzeyli yardımcı. |
new ApiProtectionConfig(int $maxRequestsPerMinute = 60, int $maxRequestsPerHour = 1000, int $maxPayloadSizeBytes = 10485760, array $allowedOrigins = [], bool $requireApiKey = true, string $apiKeyHeader = 'X-Api-Key', int $rateLimitWindowSeconds = 60) | İstek sınırları, yük sınırı, izin verilen kaynaklar, API anahtarı gereksinimi, başlık adı, pencere uzunluğu. | 60/minute, 1000/hour, 10 MiB yük, API anahtarı gerekli. | ApiProtectionConfig | Beklenmez. | Testlerde doğrudan oluşturun ya da fromArray() ile doldurun. |
ApiProtectionConfig::fromArray(array $data) | max_requests_per_minute, max_requests_per_hour, max_payload_size_bytes, allowed_origins, require_api_key, api_key_header, rate_limit_window_seconds. | Eksik anahtarlar kurucu varsayılanlarını kullanır. | ApiProtectionConfig | Beklenmez. | Çerçeve yapılandırmasını doldurmak için kullanın. |
ApiProtectionConfig::isValid() | yok. | Pozitif sınırlar ile tutarlı boyut ve pencere değerleri gerektirir. | bool | Beklenmez. | Bir uç noktayı açmadan önce doğrulayın. |
new ApiProtectionResult(bool $allowed, string $denialReason = '', ?RateLimitResult $rateLimit = null) | Karar, ret nedeni, isteğe bağlı oran sınırı sonucu. | Boş ret nedeni ve oran sınırı sonucu yok. | ApiProtectionResult | Beklenmez. | Değer, ApiProtection::checkRequest() tarafından döndürülür. |
ApiProtectionResult::toHeaders() | yok. | Oran verisi bulunduğunda oran sınırı başlıkları üretir. | array<string, string> | Beklenmez. | Worker ya da çerçeve yanıtlarına ekleyin. |
new RateLimitResult(bool $allowed, int $remainingRequests, int $retryAfterSeconds, string $clientId) | Karar, kalan istek sayısı, yeniden deneme gecikmesi, istemci tanımlayıcısı (ID). | Varsayılan değer yok. | RateLimitResult | Beklenmez. | Tek bir denetim için değişmez sonuç. |
RateLimitResult::toHeaders() | yok. | Kalan sınır ve sıfırlama başlıklarını üretir. | array<string, string> | Beklenmez. | Gözlemlenebilirlik ve istemcinin geri çekilmesi için kullanın. |
new RateLimitEntry(string $clientId, int $requestCount = 0, int $windowStart = 0, int $hourlyCount = 0, int $hourlyWindowStart = 0) | İstemci ID’si ve değiştirilebilir sayaçlar. | Sayaçlar sıfırdan başlar. | RateLimitEntry | Beklenmez. | Bellek içi izleme nesnesi. |
RateLimitEntry::increment() | yok. | Tek bir client/window için bellek içi sayacı artırır. | void | Beklenmez. | Bu, ApiProtection tarafından kullanılan düşük düzeyli bir yardımcıdır. |
RateLimitEntry::isExpired(int $windowSeconds) | Saniye cinsinden pencere uzunluğu. | Geçerli zamanla karşılaştırır. | bool | Beklenmez. | Çalışma zamanında sona erme yardımcısı. |
RateLimitEntry::isExpiredAt(int $now, int $windowSeconds) | Saat değeri ve pencere uzunluğu. | Sağlanan saat değeriyle karşılaştırır. | bool | Beklenmez. | Belirlenimci test yardımcısı. |
RateLimitEntry::reset() | yok. | Sayacı ve pencere başlangıç zamanını sıfırlar. | void | Beklenmez. | Yeni bir pencere başladığında kullanılır. |
R2 arşivi
“R2 arşivi” başlıklı bölümİşlenmiş PDF’leri Cloudflare R2’de sakladığınızda bu tabloyu kullanın: arşiv hizmeti, yapılandırması, nesne anahtarı türleri ve bir URL’yi açmadan önce incelemeniz gereken yükleme sonucu.
| Simge | Parametreler | Varsayılan davranış | Döndürür | Şu durumlarda hata fırlatır veya başarısız olur | Notlar |
|---|---|---|---|---|---|
new R2ArchiveManager(R2ArchiveConfig $config, ClientInterface $httpClient, RequestFactoryInterface $requestFactory, StreamFactoryInterface $streamFactory) | R2 yapılandırması ve PSR HTTP factories/client. | Oluşturma sırasında ağ çağrısı yapılmaz. | R2ArchiveManager | Konteyner bağlama hataları. | Ana arşiv hizmeti. |
R2ArchiveManager::upload(string $pdfData, string $filename, array $metadata = []) | Ham PDF baytları, özgün dosya adı, dize üst verileri. | Boş üst veriler; tarihe göre bölümlenmiş anahtar. | R2UploadResult | Yapılandırma, boyut, HTTP ya da aktarım başarısızlığında başarısız sonuç döndürür. | Olağan yükleme başarısızlıklarında hata fırlatmaz. |
R2ArchiveManager::generateSignedUrl(string $key, int $expiresInSeconds = 3600) | Nesne anahtarı ve URL yaşam süresi (TTL). | Bir saatlik imzalı URL. | string | Geçersiz yapılandırmadan kaynaklanan imzalama hataları. | Hassas PDF’ler için kısa TTL değerleri kullanın. |
R2ArchiveManager::buildObjectKey(string $filename) | Özgün dosya adı. | Yapılandırılmış yol önekini ve geçerli tarihi kullanır. | R2ObjectKey | Beklenmez. | Öngörülebilir arşiv bölümlemesi için kullanın. |
R2ArchiveManager::createPutRequest(R2ObjectKey $key, string $data, array $metadata = []) | Nesne anahtarı, ham baytlar, üst veriler. | Bir PUT isteğini imzalar. | RequestInterface | İstek oluşturma hataları. | Özel aktarımlar için düşük düzeyli API. |
new R2ArchiveConfig(string $bucketName, string $accountId, string $accessKeyId, string $secretAccessKey, string $endpoint = '', string $pathPrefix = 'pdfs/', int $maxFileSizeBytes = 104857600) | Paket, hesap kimliği, kimlik bilgileri, uç nokta geçersiz kılması, anahtar öneki, en büyük nesne boyutu. | Türetilen uç nokta, pdfs/ öneki, 100 MiB en büyük nesne boyutu. | R2ArchiveConfig | InvalidArgumentException, geçersiz paket adları için. | Kimlik bilgilerini gizli değer içeren yapılandırma olarak değerlendirin. |
R2ArchiveConfig::fromArray(array $data) | Hesap kimliği, paket, kimlik bilgileri, yol öneki, uç nokta geçersiz kılması, en büyük boyut. | Eksik değerler kurucu varsayılanlarını kullanır. | R2ArchiveConfig | Geçersiz paket adı sağlandığında. | Uygulama yapılandırmasını doldurmak için kullanın. |
R2ArchiveConfig::isValid() | yok. | Boş olmayan hesap, paket, erişim anahtarı ve gizli anahtar gerektirir. | bool | Beklenmez. | Geçersiz yapılandırma, yüklemelerin yapılandırılmış sonuçlarla başarısız olmasına yol açar. |
R2ArchiveConfig::getEndpoint() | yok. | Açık bir uç nokta kullanır ya da Cloudflare R2 uç noktasını hesap kimliğinden türetir. | string | Beklenmez. | İmzalı istek oluşturma için kullanılır. |
new R2ObjectKey(string $key, string $bucket) | Tam nesne anahtarı ve paket. | Normalleştirme yok. | R2ObjectKey | Beklenmez. | Genellikle R2ObjectKey::generate() tarafından oluşturulur. |
R2ObjectKey::generate(string $prefix, string $filename, ?DateTimeInterface $date = null) | Önek, özgün dosya adı, isteğe bağlı tarih. | Tarihe göre bölümlenmiş, temizlenmiş nesne anahtarı. | R2ObjectKey | Beklenmez. | Belirlenimci anahtarlar için testlerde tarihi enjekte edin. |
R2ObjectKey::fullPath() | yok. | Bölüm yolunu ve nesne dosya adını birleştirir. | string | Beklenmez. | Bu değeri nesne anahtarı olarak saklayın. |
new R2UploadResult(bool $success, string $key, string $etag = '', int $size = 0, string $error = '') | Başarı bayrağı, nesne anahtarı, varlık etiketi (ETag), bayt boyutu, hata iletisi. | Boş ETag, sıfır boyut, boş hata. | R2UploadResult | Beklenmez. | Değer, R2ArchiveManager::upload() tarafından döndürülür. |
R2UploadResult::isValid() | yok. | Yükleme başarılı olduğunda ve hem anahtar hem ETag mevcut olduğunda geçerlidir. | bool | Beklenmez. | URL’leri açmadan önce denetleyin. |
R2UploadResult::publicUrl(string $customDomain = '') | İsteğe bağlı özel genel alan adı. | Özel bir alan adı sağlanmadığında yalnızca nesne anahtarını döndürür. | string | Beklenmez. | İlke izin vermediği sürece hassas belgeler için genel URL’lerden kaçının. |
Aktarım yardımcıları
“Aktarım yardımcıları” başlıklı bölümBu tabloyu yalnızca düşük düzeyli bağlama için kullanın: cURL düzeyinde Internet Protocol (IP) ve SubjectPublicKeyInfo (SPKI) sabitlemesinin yanı sıra Worker’a erişilemediğinde yedek yol olarak kullanılan yerel işleyici sözleşmeleri.
| Simge | Parametreler | Varsayılan davranış | Döndürür | Şu durumlarda hata fırlatır veya başarısız olur | Notlar |
|---|---|---|---|---|---|
new PinnedCurlTransport(ResponseFactoryInterface $responseFactory, StreamFactoryInterface $streamFactory, array $pinnedIps = [], array $pinnedPublicKeys = [], int $timeoutSeconds = 30) | PSR-17 fabrikaları, sabitlenmiş IP’ler, sabitlenmiş açık anahtarlar, zaman aşımı. | Sabitleme yok ve 30 saniyelik zaman aşımı. | PinnedCurlTransport | Beklenmez. | Yalnızca cURL düzeyinde sabitleme gerektiğinde kullanın. |
PinnedCurlTransport::sendRequest(RequestInterface $request) | PSR-7 isteği. | Yapılandırılmış zaman aşımı ve sabitleme denetimleriyle cURL üzerinden gönderir. | ResponseInterface | PSR-18 aktarım istisnaları. | Yalnızca çerçeve HTTP istemcileri aynı sabitleme ilkesini uygulayamadığında kullanın. |
PinnedCurlTransport::buildCurlOptions(RequestInterface $request, string $host, int $port) | İstek, hedef ana makine, hedef bağlantı noktası. | Bu yöntem, sendRequest() tarafından kullanılan cURL seçenek dizisini oluşturur. | array | Geçersiz istek ya da sabitleme yapılandırması hataları. | Düşük düzeyli test ve tanılama kancası. |
LocalRendererInterface::render(string $html, array $options = []) | HTML ve işleyici seçenekleri. | Yalnızca sözleşme; varsayılanları uygulama belirler. | string | Uygulamaya özgü işleme hataları. | Worker işlemesi kullanılamadığında yerel yedek olarak kullanılır. |
LocalRendererFactoryInterface::create() | yok. | Yerel bir işleyici uygulaması oluşturur. | LocalRendererInterface | Fabrika ya da bağımlılık hataları. | Yedek işleyici oluşturmayı CloudflareHtmlRenderer dışında tutar. |
Geliştirme notları
“Geliştirme notları” başlıklı bölüm- Worker URL’sini bir ağ sınırı olarak değerlendirin. İşlemeden önce hedefi, boyutu ve kimlik doğrulamayı doğrulayın.
- API koruması sonuçlarını ilke çıktıları olarak kullanın; istisna denetim akışı olarak değil.
- R2 yüklemeleri yapılandırılmış başarı ya da hata sonuçları döndürür; her iki yolu da işleyin.