从本地将csv加载到S3中

时间:2018-12-17 05:46:04

标签: amazon-web-services amazon-s3 amazon-sagemaker

我正在探索适用于ML的AWS sagemaker。我创建了一个存储桶:

bucket_name = 'test-bucket' 
s3 = boto3.resource('s3')
try:
   if  my_region == 'us-east-1':
      s3.create_bucket(Bucket=bucket_name)
   else: 
      s3.create_bucket(Bucket=bucket_name, CreateBucketConfiguration={ 'LocationConstraint': my_region })
print('S3 bucket created successfully')
except Exception as e:
    print('S3 error: ',e)

我本地有一个csv,我想将其加载到我创建的存储桶中。

我提到的所有链接都有从链接加载和解压缩的说明。有没有一种方法可以将数据从本地加载到存储桶中。

3 个答案:

答案 0 :(得分:0)

使用AWS CLI。不知道为什么要用python编写所有代码。如果要创建基础架构,请使用CloudFormation或Terraform。

这是您使用AWS CLI的方式

  

aws s3 cp / path / localfolder s3:// bucketname / foldername-递归

在此处查看如何设置CLI

  

https://docs.aws.amazon.com/lambda/latest/dg/setup-awscli.html

答案 1 :(得分:0)

如果您使用的是Amazon SageMaker,则可以使用SageMaker python库,该库实现了对数据科学家最有用的命令,包括将文件上传到S3。默认情况下,它已经安装在您的SageMaker笔记本实例上。

import sagemaker
sess = sagemaker.Session()

# Uploading the local file to S3
sess.upload_data(path='local-file.txt', bucket=bucket_name, key_prefix='input')    

答案 2 :(得分:-1)

将文件从本地计算机上传到目标S3存储桶。参见以下示例:

import boto3 bucket_name = 'my-bucket' content = open('local-file.txt', 'rb') s3 = boto3.client('s3') s3.put_object( Bucket=bucket_name, Key='directory-in-bucket/remote-file.txt', Body=content )