S3 не предназначен для этого;обычно вам необходимо загрузить файл, обработать его и загрузить извлеченные файлы.
Однако возможны несколько вариантов:
Вы можете смонтировать S3 bucket как локальную файловую систему, используя s3fs и FUSE (см. Статью GitHub ).Это по-прежнему требует загрузки и выгрузки файлов, но скрывает эти операции за интерфейсом файловой системы.
Если ваша главная задача - не загружать данные из AWS на локальный компьютертогда, конечно, вы можете загрузить данные в удаленный экземпляр EC2 и выполнить работу там, с или без s3fs.Это позволяет хранить данные в центрах обработки данных Amazon.
Вы можете выполнять удаленные операции с файлами, не загружая их на локальный компьютер, используя функцию AWS Lambda.
Установка
Многие системы предоставляют готовые пакеты:
sudo amazon-linux-extras install epel
sudo yum install s3fs-fuse
- Debian 9 и Ubuntu 16.04 или новее:
sudo apt-get install s3fs
sudo yum install s3fs-fuse
- RHEL и CentOS 7 илиновее через EPEL:
sudo yum install epel-release
sudo yum install s3fs-fuse
- SUSE 12 и openSUSE 42.1 или новее:
sudo zypper install s3fs
brew cask install osxfuse
brew install s3fs
s3fs поддерживает стандартный файл учетных данных AWS, хранящийся в $ {HOME} /. Aws / credentials.В качестве альтернативы s3fs поддерживает пользовательский файл passwd.
Можно создать местоположение по умолчанию для файла паролей s3fs:
using a .passwd-s3fs file in the users home directory (i.e. ${HOME}/.passwd-s3fs)
using the system-wide /etc/passwd-s3fs file
Введите свои учетные данные в файле vim $ {HOME}/.passwd-s3fs и установить разрешения только для владельца:
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs
Запустить s3fs с существующим bucket mybucket и каталогом / path / to / mountpoint:
s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs
Ifпри возникновении любых ошибок включите вывод отладки:
s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs -o dbglevel=info -f -o curldbg
Вы также можете подключиться при загрузке, введя следующую строку в / etc / fstab:
s3fs#mybucket /path/to/mountpoint fuse _netdev,allow_other 0 0
, после чего вы можете запустить zipи распаковать команды