Эта команда:
BUCKET_TO_READ='my-bucket'
FILE_TO_READ='myFile'
data_location = 's3://{}/{}'.format(BUCKET_TO_READ, FILE_TO_READ)
df=pd.read_csv(data_location)
завершается с ошибкой
ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden
, и я не могу понять, почему. Это должно работать в соответствии с { ссылка }
Вот мои разрешения для корзины:
"Action": [
"s3:ListMultipartUploadParts",
"s3:ListBucket",
"s3:GetObjectVersionTorrent",
"s3:GetObjectVersionTagging",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersion",
"s3:GetObjectTorrent",
"s3:GetObjectTagging",
"s3:GetObjectAcl",
"s3:GetObject"
И эти команды работают как положено:
role = get_execution_role()
region = boto3.Session().region_name
print(role)
print(region)
s3 = boto3.resource('s3')
bucket = s3.Bucket(BUCKET_TO_READ)
print(bucket.creation_date)
for my_bucket_object in bucket.objects.all():
print(my_bucket_object)
FILE_TO_READ = my_bucket_object.key
break
obj = s3.Object(BUCKET_TO_READ, FILE_TO_READ)
print(obj)
Все эти операторы печати работали просто отлично.
Я не уверен, имеет ли это значение, но каждый файл находится в папке, поэтому мой FILE_TO_READ выглядит как folder/file
.
Эта команда, которая должна загрузить файл в Sagemaker, также сбрасывается с a 403:
import boto3
s3 = boto3.resource('s3')
s3.Object(BUCKET_TO_READ, FILE_TO_READ).download_file(FILE_TO_READ)
Это также происходит, когда я открываю терминал и использую
aws s3 cp AWSURI local_file_name