質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

0回答

1110閲覧

取込時に拡張子を正しく変更したい

akubareto

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2020/11/27 00:52

編集2022/01/12 10:55

共有ファイルサーバー(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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2020/11/27 04:25

拡張子がどうなってしまうのでしょう? また、ファイル名はどうなるのでしょう? 出力先を通常ファイルでなくて、一時(temp(orary))ファイルにしているのはなぜですか?
akubareto

2020/11/27 05:15

S3に置くときにローカルへの一時保存ができない制約がありまして、ファイルサーバーのデータを読み込んでそのままS3に書き出し(保存)をするには一時ファイル(temp)にする必要があるのかと考えておりました。 拡張子・ファイル名はfile_nameで指定しているので、その名前通りにS3にはファイルができてはいるのですが…(なぜか容量が0バイトになってしまいます)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問