Skip to content

Commit fb622d2

Browse files
committed
feat: update get_public_url to sign urls
1 parent 1e2eb11 commit fb622d2

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/apify/apify_storage_client/_key_value_store_client.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55

66
from typing_extensions import override
77

8-
from crawlee.storage_clients._base import BaseKeyValueStoreClient
8+
from crawlee.storage_clients._base import KeyValueStoreClient as BaseKeyValueStoreClient
99
from crawlee.storage_clients.models import KeyValueStoreListKeysPage, KeyValueStoreMetadata, KeyValueStoreRecord
10+
from apify._crypto import (create_hmac_signature)
11+
1012

1113
if TYPE_CHECKING:
1214
from collections.abc import AsyncIterator
@@ -90,5 +92,9 @@ async def get_public_url(self, key: str) -> str:
9092
key: The key for which the URL should be generated.
9193
"""
9294
public_api_url = self._api_public_base_url
95+
public_url = f'{public_api_url}/v2/key-value-stores/{self._client.resource_id}/records/{key}'
96+
97+
if getattr(self.storage_object, 'url_signing_secret_key', None):
98+
public_url += f'?signature={create_hmac_signature(self.storage_object.url_signing_secret_key, key)}'
9399

94-
return f'{public_api_url}/v2/key-value-stores/{self._client.resource_id}/records/{key}'
100+
return public_url

0 commit comments

Comments
 (0)