Skip to content

Commit 76cb2d3

Browse files
author
Ben Cook
committed
Support multi-part uploads
Ignore Emacs backup files
1 parent f0f67dd commit 76cb2d3

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ examples/tensorflow/distributed_mnist/data
2020
doc/_build
2121
**/.DS_Store
2222
venv/
23+
*~

src/sagemaker/session.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,7 @@ def upload_data(self, path, bucket=None, key_prefix='data'):
127127
s3 = self.boto_session.resource('s3')
128128

129129
for local_path, s3_key in files:
130-
with open(local_path, 'rb') as f:
131-
s3.Object(bucket, s3_key).put(Body=f)
130+
s3.Object(bucket, s3_key).upload_file(local_path)
132131

133132
s3_uri = 's3://{}/{}'.format(bucket, key_prefix)
134133
# If a specific file was used as input (instead of a directory), we return the full S3 key

tests/unit/test_upload_data.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ def sagemaker_session():
3434
def test_upload_data_absolute_dir(sagemaker_session):
3535
result_s3_uri = sagemaker_session.upload_data(UPLOAD_DATA_TESTS_FILES_DIR)
3636

37-
uploaded_files = [kwargs['Body'].name for name, args, kwargs in sagemaker_session.boto_session.mock_calls
38-
if name == 'resource().Object().put']
37+
uploaded_files = [args[0] for name, args, kwargs in sagemaker_session.boto_session.mock_calls
38+
if name == 'resource().Object().upload_file']
3939
assert result_s3_uri == 's3://{}/data'.format(BUCKET_NAME)
4040
assert len(uploaded_files) == 4
4141
for file in uploaded_files:
@@ -45,8 +45,8 @@ def test_upload_data_absolute_dir(sagemaker_session):
4545
def test_upload_data_absolute_file(sagemaker_session):
4646
result_s3_uri = sagemaker_session.upload_data(UPLOAD_DATA_TESTS_SINGLE_FILE)
4747

48-
uploaded_files = [kwargs['Body'].name for name, args, kwargs in sagemaker_session.boto_session.mock_calls
49-
if name == 'resource().Object().put']
48+
uploaded_files = [args[0] for name, args, kwargs in sagemaker_session.boto_session.mock_calls
49+
if name == 'resource().Object().upload_file']
5050
assert result_s3_uri == 's3://{}/data/{}'.format(BUCKET_NAME, SINGLE_FILE_NAME)
5151
assert len(uploaded_files) == 1
5252
assert os.path.exists(uploaded_files[0])

0 commit comments

Comments
 (0)