S3 bezpośrednie przesyłanie ograniczające rozmiar i typ pliku

Pytanie dla początkujących, ale wygooglowałem abit i nie mogę znaleźć żadnego rozwiązania.

Chcę umożliwić użytkownikom bezpośrednie przesyłanie plików na S3, a nie przez mój serwer. Czy jest jakiś sposób, aby pliki mogły być sprawdzane pod kątem limitu rozmiaru i dozwolonych typów przed przesłaniem do S3? Najlepiej nie używać Flasha, ale javascript.

Author: twb, 2012-11-15

3 answers

Jeśli mówisz o problemach z bezpieczeństwem (ludzie przesyłający ogromny plik do wiadra), tak, możesz ograniczyć Rozmiar Pliku za pomocą przeglądarki wysyłania do S3.

Oto przykład zmiennej "policy", gdzie kluczowym punktem jest" content-length-range".

"expiration": "'.date('Y-m-d\TG:i:s\Z', time()+10).'",
"conditions": [
    {"bucket": "xxx"},
    {"acl": "public-read"},
    ["starts-with","xxx",""],
    {"success_action_redirect": "xxx"},
    ["starts-with", "$Content-Type", "image/jpeg"],
    ["content-length-range", 0, 10485760]
]

W tym przypadku, jeśli upla Rozmiar pliku > 10MB, żądanie przesłania zostanie odrzucone przez Amazon.

Oczywiście, przed rozpoczęciem procesu przesyłania, należy użyć javascript, aby sprawdzić rozmiar pliku i zrobić kilka ostrzega, jeśli tak.

Pobieranie rozmiaru pliku w javascript

 39
Author: stonyau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:30

AWS napisał samouczek wyjaśniający, jak tworzyć formularze HTML, które umożliwiają odwiedzającym Twoją stronę www przesyłanie plików na twoje konto S3 przy użyciu standardowej przeglądarki internetowej . Używa wstępnie podpisanych adresów URL S3, aby zapobiec manipulacji i można ograniczyć dostęp przez Rozmiar pliku.

 3
Author: Trenton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-22 06:14:18

Aby zrobić to, co chcesz zrobić, trzeba będzie przesłać za pośrednictwem własnego serwisu internetowego. Jest to prawdopodobnie najlepsze w każdym razie, ponieważ zapewnienie globalnego dostępu do zapisu użytkownikom końcowym do wiadra S3 jest koszmarem bezpieczeństwa, nie wspominając o tym, że nic nie powstrzyma ich przed przesyłaniem ogromnych plików i podnoszeniem opłat.

 -5
Author: Mike Brant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-15 01:45:33