python-3.x #amazon-web-services #amazon-ec2
#python-3.x #amazon-веб-сервисы #amazon-ec2
Вопрос:
Я пытаюсь подключиться к сетевому диску через EC2. Я использовал приведенный ниже скрипт python для извлечения данных с сетевого диска. Но он выдает ошибку как FileNotFoundError:нет такого файла в каталоге.
import os
import boto3
s3=boto3.client('s3')
data_folder=os.path.join(os.getcwd(),'path of network drive')
for file in os.listdir(data_folder):
s3.upload_file(os.path.join(data_folder,file),'s3 bucket',file)
Есть ли какой-либо способ подключения сетевого диска из EC2 или каких-либо сервисов AWS?
Комментарии:
1. Отладьте свой код. Начните с
data_folder
и затемos.path.join(data_folder,file)
. На что они оценивают? Существуют ли эти папка и файл?2. Эта папка является сетевым диском. Через EC2 код не может подключить его из-за VPC или любой другой проблемы.
3. Код Python здесь, вероятно, не имеет значения. Есть ли у вас какой-либо механизм для подключения и монтирования удаленного диска? Работает ли этот механизм? Из экземпляра EC2 можете ли вы перечислить папки и файлы на соответствующей точке монтирования после того, как этот диск был смонтирован на экземпляре EC2?
4. Нет, я не знаю, как монтировать на сервере EC2.
5. Если я подключу сетевой диск в local и запущу код в cmd, то он работает, но это очень медленный процесс. Использование EC2 сделало бы его быстрым и надежным, поскольку у меня огромное количество файлов на сетевом диске.
Ответ №1:
Я собираюсь сделать некоторые предположения, что:
- У вас есть компьютер в корпоративной сети
- Компьютер может получить доступ к сетевому диску в корпоративной сети
- Вы можете копировать файлы с сетевого диска в корзину Amazon S3
Если это так, то вы можете использовать команду интерфейса командной строки AWS (CLI) aws s3 sync
для копирования файлов с компьютера в корзину Amazon S3.
Если это не так, пожалуйста, отредактируйте свой вопрос, чтобы предоставить дополнительную информацию.
Комментарии:
1. Да, ваше предположение верно, и решение, которым вы поделились (AWS CLI), также верно. Но скорость миграции будет очень низкой, поскольку у нас есть огромный объем данных для переноса на s3.
2. Интерфейс командной строки AWS может загружать файлы параллельно. Вы можете отредактировать конфигурацию , чтобы оптимизировать доступную пропускную способность. Однако вашим основным ограничивающим фактором будет пропускная способность между вашей корпоративной сетью и Интернетом.
3. Если у вас «огромный» объем данных (например, 10 ТБ), вы можете использовать AWS Snowball для отправки данных на Amazon S3. Это физическое запоминающее устройство, которое отправляется в ваше местоположение. Затем вы можете скопировать на него данные и отправить их обратно в AWS.
4. На данный момент мы не можем использовать AWS snowball. Я пытаюсь смонтировать диск на ec2.Ниже приведена ссылка, по которой я следую. redhat.com/sysadmin/samba-windows-linux .
5. Есть ли у вас прямое подключение между вашей корпоративной сетью и AWS? Если нет, я бы посоветовал вам не пытаться подключить сетевой диск из вашей корпоративной сети к экземпляру Amazon EC2. Производительность будет довольно низкой.