AWS S3存储桶写入错误

时间:2018-04-13 22:36:18

标签: amazon-s3 amazon-sagemaker

我创建了AWS S3存储桶并在Jupyter笔记本上尝试了示例kmeans示例。 作为帐户所有者,我具有读/写权限,但我无法写入包含以下错误的日志,

 ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

这里是kmeans示例代码,

 from sagemaker import get_execution_role
 role = get_execution_role()
 bucket='testingshk' 

 import pickle, gzip, numpy, urllib.request, json
urllib.request.urlretrieve("http://deeplearning.net/data/mnist/mnist.pkl.gz", "mnist.pkl.gz")
 with gzip.open('mnist.pkl.gz', 'rb') as f:
 train_set, valid_set, test_set = pickle.load(f, encoding='latin1')

 from sagemaker import KMeans
 data_location = 's3://{}/kmeans_highlevel_example/data'.format(bucket)
 output_location = 's3://{}/kmeans_example/output'.format(bucket)

 print('training data will be uploaded to: {}'.format(data_location))
 print('training artifacts will be uploaded to: {}'.format(output_location))

 kmeans = KMeans(role=role,
            train_instance_count=2,
            train_instance_type='ml.c4.8xlarge',
            output_path=output_location,
            k=10,
            data_location=data_location)
 kmeans.fit(kmeans.record_set(train_set[0]))

1 个答案:

答案 0 :(得分:1)

即使您拥有对存储桶的所有访问权限,您也需要提供访问密钥和密钥,以便将某些对象放入存储桶(如果它是私有的)。或者,如果您将桶访问权限公之于众,那么您可以毫无问题地将对象推送到存储桶。