共有ファイルサーバー(samba)からamazon S3にExcelファイルを移すプログラムを作成しています。
その際に一旦ローカル等に保存できないという制約があるためtempfileモジュールを使って一時ファイルを作ってS3にデータを置こうと考えました。
しかし、S3にファイルは置けたのですが拡張子が変わってしまっているため該当のファイルが開けなくなってしまい困っています。
コードは以下の通りで、この問題を解消する方法をご教示頂きたいです。
宜しくお願いします。
import boto3 import platform import tempfile from smb.SMBConnection import SMBConnection import contextlib import pathlib import shutil @contextlib.contextmanager def main(): # connection open conn = SMBConnection('ユーザー名','パスワード',platform.uname().node,'NetBIOS名',is_direct_tcp=True) conn.connect('IPアドレス',ポート番号) print(conn.echo('echo success')) #echo successが取れているので接続は確認 tmp = tempfile.NamedTemporaryFile() file_attributes, filesize = conn.retrieveFile('取得したいファイルパス', tmp) s3 = boto3.resource('s3',aws_access_key_id='ID',aws_secret_access_key='アクセスキー' ,region_name='ap-northeast-1') bucket_name = "置きたいバケット名" file_name = "ファイル名.xlsx" bucket = s3.Bucket(bucket_name) bucket.upload_fileobj(tmp, file_name)
あなたの回答
tips
プレビュー