Полное раскрытие: я относительно новичок в мире AWS. Как указано в заголовке, я пытаюсь загрузить папку со своего локального компьютера на том Amazon S3 через JupyterLab в студии Sagemaker. Я могу сделать это вручную, щелкнув значок загрузки в JupyterLab, но надеюсь, что смогу сделать это с помощью следующего синтаксиса:
FileNotFoundError Traceback (most recent call last)
Cell In[3], line 2
1 local_dir = "Users/tomi/DevProjects/WeThePeople/datasets"
----> 2 inputs = sagemaker_session.upload_data(path=local_dir, bucket=bucket, key_prefix=prefix)
3 print("input spec (in this case, just an S3 path): {}".format(inputs))
File /opt/conda/lib/python3.10/site-packages/sagemaker/session.py:400, in Session.upload_data(self, path, bucket, key_prefix, extra_args)
397 s3 = self.s3_resource
399 for local_path, s3_key in files:
--> 400 s3.Object(bucket, s3_key).upload_file(local_path, ExtraArgs=extra_args)
402 s3_uri = "s3://{}/{}".format(bucket, key_prefix)
403 # If a specific file was used as input (instead of a directory), we return the full S3 key
404 # of the uploaded object. This prevents unintentionally using other files under the same
405 # prefix during training.
File /opt/conda/lib/python3.10/site-packages/boto3/s3/inject.py:318, in object_upload_file(self, Filename, ExtraArgs, Callback, Config)
287 def object_upload_file(
288 self, Filename, ExtraArgs=None, Callback=None, Config=None
289 ):
290 """Upload a file to an S3 object.
291
292 Usage::
(...)
316 transfer.
317 """
--> 318 return self.meta.client.upload_file(
319 Filename=Filename,
320 Bucket=self.bucket_name,
321 Key=self.key,
322 ExtraArgs=ExtraArgs,
323 Callback=Callback,
324 Config=Config,
325 )
File /opt/conda/lib/python3.10/site-packages/boto3/s3/inject.py:143, in upload_file(self, Filename, Bucket, Key, ExtraArgs, Callback, Config)
108 """Upload a file to an S3 object.
109
110 Usage::
(...)
140 transfer.
141 """
142 with S3Transfer(self, Config) as transfer:
--> 143 return transfer.upload_file(
144 filename=Filename,
145 bucket=Bucket,
146 key=Key,
147 extra_args=ExtraArgs,
148 callback=Callback,
149 )
File /opt/conda/lib/python3.10/site-packages/boto3/s3/transfer.py:292, in S3Transfer.upload_file(self, filename, bucket, key, callback, extra_args)
288 future = self._manager.upload(
289 filename, bucket, key, extra_args, subscribers
290 )
291 try:
--> 292 future.result()
293 # If a client error was raised, add the backwards compatibility layer
294 # that raises a S3UploadFailedError. Эти конкретные ошибки были
295 # когда-либо выданными для upload_parts, но теперь могут быть выданы для любой связанной
296 # ошибки клиента.
297, за исключением ClientError как e:
Файл /opt/conda/lib/python3.10/site-packages/s3transfer/futures.py:103 в TransferFuture.result(self)
98 def result(self):
99 try:< br /> 100 # Обычно метод result() блокируется до завершения передачи,
101 # однако, если возникает KeyboardInterrupt, мы хотим выйти
102 # из этого и распространить исключение.< br />--> 103 return self._coordinator.result()
104 кроме KeyboardInterrupt как e:
105 self.cancel()
Файл /opt/conda/lib /python3.10/site-packages/s3transfer/futures.py:266, в TransferCoordinator.result(self)
263 # После завершения ожидания вызвать исключение, если оно имеется, или вернуть
264 # окончательный результат .
265 if self._Exception:
--> 266 поднять self._Exception
267 вернуть self._result
Файл /opt/conda/lib/python3. 10/site-packages/s3transfer/tasks.py:269, в SubmissionTask._main(self, Transfer_future, **kwargs)
265 self._transfer_coordinator.set_status_to_running()
267 # Вызовите метод submit, чтобы начать отправку задач для выполнения
268 # передачи.
--> 269 self._submit(transfer_future=transfer_future, **kwargs)
270 кроме BaseException as e:
271 # Если во время отправки задачи возникло исключение
272 #, есть вероятность, что последняя задача сигнализирует о передаче
(...)
281
282 # Установите исключение, которое привело к сбою процесса.
283 self._log_and_set_Exception(e)
Файл /opt/conda/lib/python3.10/site-packages/s3transfer/upload. py:591, в UploadSubmissionTask._submit(self, client, config, osutil, request_executor, Transfer_future,bandwidth_limiter)
589 # Определить размер, если он не был предоставлен
590, если Transfer_future.meta.size имеет значение None :
--> 591 upload_input_manager.provide_transfer_size(transfer_future)
593 # При необходимости выполните многочастную загрузку, в противном случае выполните обычный объект put.
594, если нет upload_input_manager.requires_multipart_upload(
595 Transfer_future, config
596 ):
Файл /opt/conda/lib/python3.10/site-packages/s3transfer/upload.py:244, в UploadFilenameInputManager.provide_transfer_size(self, Transfer_future)
242 def Provide_transfer_size(self, Transfer_future):
243 Transfer_future.meta.provide_transfer_size(
--> 244 self._osutil.get_file_size(transfer_future.meta.call_args.fileobj)
245 )
Файл /opt/conda/lib/python3.10/site-packages/s3transfer/utils.py:247, в OSUtils.get_file_size(self, filename)
246 def get_file_size(self, filename):
--> 247 return os.path.getsize(filename)
File /opt/conda/lib/python3.10/genericpath.py:50 , in getsize(filename)
48 def getsize(filename):
49 """Возвращает размер файла, сообщаемый os.stat()."""
--- > 50 return os.stat(filename).st_size
FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'Users/tomi/DevProjects/WeThePeople/datasets'
Однако я точно знаю, что этот путь существует на моей машине. Если я зайду в терминал, я точно смогу получить доступ к каталогу, как показано ниже:
. Not sure if this is the issue but just thought I'd mention.
Question is, what could be causing this issue and how do I resolve it? Could it be some other permissions settings? Is there something else I haven't checked?
Полное раскрытие: я относительно новичок в мире AWS. Как указано в заголовке, я пытаюсь загрузить папку со своего локального компьютера на том Amazon S3 через JupyterLab в студии Sagemaker. Я могу сделать это вручную, щелкнув значок загрузки в JupyterLab, но надеюсь, что смогу сделать это с помощью следующего синтаксиса: [code]import sagemaker from sagemaker.tuner import ( IntegerParameter, CategoricalParameter, ContinuousParameter, HyperparameterTuner, )
sagemaker_session = sagemaker.Session() region = sagemaker_session.boto_region_name bucket = sagemaker_session.default_bucket() prefix = "sagemaker/my-first-proj" role = sagemaker.get_execution_role()
local_dir = "Users/tomi/DevProjects/WeThePeople/datasets" inputs = sagemaker_session.upload_data(path=local_dir, bucket=bucket, key_prefix=prefix) [/code] When I run the code block above, this is the error I get: [code]FileNotFoundError Traceback (most recent call last) Cell In[3], line 2 1 local_dir = "Users/tomi/DevProjects/WeThePeople/datasets" ----> 2 inputs = sagemaker_session.upload_data(path=local_dir, bucket=bucket, key_prefix=prefix) 3 print("input spec (in this case, just an S3 path): {}".format(inputs))
File /opt/conda/lib/python3.10/site-packages/sagemaker/session.py:400, in Session.upload_data(self, path, bucket, key_prefix, extra_args) 397 s3 = self.s3_resource 399 for local_path, s3_key in files: --> 400 s3.Object(bucket, s3_key).upload_file(local_path, ExtraArgs=extra_args) 402 s3_uri = "s3://{}/{}".format(bucket, key_prefix) 403 # If a specific file was used as input (instead of a directory), we return the full S3 key 404 # of the uploaded object. This prevents unintentionally using other files under the same 405 # prefix during training.
File /opt/conda/lib/python3.10/site-packages/boto3/s3/inject.py:143, in upload_file(self, Filename, Bucket, Key, ExtraArgs, Callback, Config) 108 """Upload a file to an S3 object. 109 110 Usage:: (...) 140 transfer. 141 """ 142 with S3Transfer(self, Config) as transfer: --> 143 return transfer.upload_file( 144 filename=Filename, 145 bucket=Bucket, 146 key=Key, 147 extra_args=ExtraArgs, 148 callback=Callback, 149 )
File /opt/conda/lib/python3.10/site-packages/boto3/s3/transfer.py:292, in S3Transfer.upload_file(self, filename, bucket, key, callback, extra_args) 288 future = self._manager.upload( 289 filename, bucket, key, extra_args, subscribers 290 ) 291 try: --> 292 future.result() 293 # If a client error was raised, add the backwards compatibility layer 294 # that raises a S3UploadFailedError. Эти конкретные ошибки были 295 # когда-либо выданными для upload_parts, но теперь могут быть выданы для любой связанной 296 # ошибки клиента. 297, за исключением ClientError как e:
Файл /opt/conda/lib/python3.10/site-packages/s3transfer/futures.py:103 в TransferFuture.result(self) 98 def result(self): 99 try:< br /> 100 # Обычно метод result() блокируется до завершения передачи, 101 # однако, если возникает KeyboardInterrupt, мы хотим выйти 102 # из этого и распространить исключение.< br />--> 103 return self._coordinator.result() 104 кроме KeyboardInterrupt как e: 105 self.cancel()
Файл /opt/conda/lib /python3.10/site-packages/s3transfer/futures.py:266, в TransferCoordinator.result(self) 263 # После завершения ожидания вызвать исключение, если оно имеется, или вернуть 264 # окончательный результат . 265 if self._Exception: --> 266 поднять self._Exception 267 вернуть self._result
Файл /opt/conda/lib/python3. 10/site-packages/s3transfer/tasks.py:269, в SubmissionTask._main(self, Transfer_future, **kwargs) 265 self._transfer_coordinator.set_status_to_running() 267 # Вызовите метод submit, чтобы начать отправку задач для выполнения 268 # передачи. --> 269 self._submit(transfer_future=transfer_future, **kwargs) 270 кроме BaseException as e: 271 # Если во время отправки задачи возникло исключение 272 #, есть вероятность, что последняя задача сигнализирует о передаче (...) 281 282 # Установите исключение, которое привело к сбою процесса. 283 self._log_and_set_Exception(e)
Файл /opt/conda/lib/python3.10/site-packages/s3transfer/upload. py:591, в UploadSubmissionTask._submit(self, client, config, osutil, request_executor, Transfer_future,bandwidth_limiter) 589 # Определить размер, если он не был предоставлен 590, если Transfer_future.meta.size имеет значение None : --> 591 upload_input_manager.provide_transfer_size(transfer_future) 593 # При необходимости выполните многочастную загрузку, в противном случае выполните обычный объект put. 594, если нет upload_input_manager.requires_multipart_upload( 595 Transfer_future, config 596 ):
File /opt/conda/lib/python3.10/genericpath.py:50 , in getsize(filename) 48 def getsize(filename): 49 """Возвращает размер файла, сообщаемый os.stat().""" --- > 50 return os.stat(filename).st_size
FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'Users/tomi/DevProjects/WeThePeople/datasets' [/code] Однако я точно знаю, что этот путь существует на моей машине. Если я зайду в терминал, я точно смогу получить доступ к каталогу, как показано ниже: [code]>>> (WeThePeople) tomi@MacBook-Pro-4 datasets % pwd /Users/tomi/DevProjects/WeThePeople/datasets [/code] I thought perhaps this might be an IAM permission thing on AWS, but the user profile I'm using sagemaker with has both [code]AmazonS3FullAccess[/code] and [code]AmazonSageMakerFullAccess[/code]. Not sure if this is the issue but just thought I'd mention. Question is, what could be causing this issue and how do I resolve it? Could it be some other permissions settings? Is there something else I haven't checked?
ответ: set winmode=0
Я впервые использую ctypes и поэтому экспериментировал с ним, прежде чем пытаться его реализовать. Однако я не могу загрузить скомпилированную DLL с помощью ctypes.CDLL(), поскольку она выдает FileNotFoundError.
Это полная...
Я создал файл веса YOLO (300 МБ) с помощью Sage Maker Studio Lab и хочу загрузить его на свой локальный компьютер. Я могу загружать небольшие файлы, но кнопка «загрузить» не работает для больших файлов, таких как вес YOLO. Как загрузить большой файл...
Я обнаружил ошибку FileNotFoundError при попытке доступа к файлу по относительным путям в Python. Структура моего проекта следующая:
C:\Users\danie\CAMP-data-processing