Несколько ошибок при попытке написать скрипт, который загружает любые данные в EC2 Instance в S3 Bucket с помощью BOTO - PullRequest
0 голосов
/ 10 июня 2019

Я пытался выполнить резервное копирование своего экземпляра EC2 в S3 Bucket, но постоянно сталкивался с несколькими ошибками при запуске файла. Наиболее заметной ошибкой является ошибка S3ResponceError: 403 Forbidden

К вашему сведению, я использую свой идентификатор ключа доступа aws, секрет ключа доступа от Rossetahub (Предоставлено школой)

ниже приведен код, который я написал

import boto
import boto.s3
import os.path
import sys
AWS_ACCESS_KEY_ID = '' 
AWS_ACCESS_KEY_SECRET = ''

bucket_name = 'bucketpoly'
sourceDir = 'example_files/'
destDir = 'example_files1/'
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY_SECRET)
bucket= conn.get_bucket(bucket_name)
uploadFileNames = []

for (sourceDir, dirname, filename) in os.walk(sourceDir):
    uploadFileNames.extend(filename)
    break


def percent_cb(complete, total):
    sys.stdout.write('.')
    sys.stdout.flush()



for filename in uploadFileNames:

    sourcepath = os.path.join(sourceDir + filename)

    destpath = os.path.join(destDir, filename)

    print ('Uploading %s to Amazon S3 bucket %s' % 
           (sourcepath, bucket_name))



print ("singlepart upload")

k = boto.s3.key.Key(bucket)

k.key = destpath

k.set_contents_from_filename(sourcepath, cb=percent_cb, num_cb=10)



это ошибка

Traceback (most recent call last):
  File "/home/student/Desktop/PROJECT FILES/testing2.py", line 11, in <module>
    bucket= conn.get_bucket(bucket_name)
  File "/usr/local/lib/python3.5/dist-packages/boto/s3/connection.py", line 509, in get_bucket
    return self.head_bucket(bucket_name, headers=headers)
  File "/usr/local/lib/python3.5/dist-packages/boto/s3/connection.py", line 542, in head_bucket
    raise err
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden

как вы думаете, может быть проблема с этим?

1 Ответ

0 голосов
/ 10 июня 2019

403 Запрещено из-за недостаточных разрешений IAM. Из-за ошибки у пользователя IAM нет прав на Listobject и Listbucket.

Это ссылка, которую вы можете использовать, чтобы начать с разрешениями S3:

https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html

...