我创建了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]))
答案 0 :(得分:1)
即使您拥有对存储桶的所有访问权限,您也需要提供访问密钥和密钥,以便将某些对象放入存储桶(如果它是私有的)。或者,如果您将桶访问权限公之于众,那么您可以毫无问题地将对象推送到存储桶。