0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【sharepoint×python】HTTPリクエストで取得したファイルをsharepointにアップロード

Posted at

httpリクエストで取得したファイルをsharepointにアップロードする方法。

フロー

1. 今日の日付のフォルダをsharepoint上に作成
2.file_list内のファイルを順に httpリクエストで取得してアップロード

コード例

import requests
from office365.sharepoint.client_context import ClientContext
from office365.runtime.auth.user_credential import UserCredential
from io import BytesIO
import datetime

# ダウンロードしたいファイルのリスト
file_list = [
"53/iris.zip",
"45/heart+disease.zip",
]

# ダウンロード元のURL
base_url = "https://archive.ics.uci.edu/static/public/"

# 現在の日付を取得してファイル名に追加(YYYY.MM.DD形式)
save_date = datetime.datetime.today().date().strftime('%Y.%m.%d')


# SharePointの認証情報
user = 'ユーザー名'
password = 'パスワード'
site_url = "https://サイトURL"
ctx = ClientContext(site_url).with_credentials(UserCredential(user, password))

# SharePointのフォルダへの相対パス
fldrs_path = '/sites/***/Shared Documents/***(チャネル名)/***(フォルダ名)'
# フォルダの作成
target_folder = ctx.web.folders.add(fldrs_path + "/" + save_date)
ctx.execute_query()

folder = ctx.web.get_folder_by_server_relative_url(fldrs_path + "/" + save_date)

# ファイルを順にダウンロードしてアップロード
for file_name in file_list:
    # 完全なURLを作成
    file_url = base_url + file_name
    try:
        # HTTPリクエストでファイルをダウンロード
        response = requests.get(file_url, headers=headers, allow_redirects=True)

        # ステータスコードが200か確認
        if response.status_code == 200:
            # ファイルコンテンツをメモリ上に保持
            file_content = BytesIO(response.content)

            # SharePoint フォルダにファイルをアップロード
            file = folder.files.upload(file_content, file_name).execute_query()

            print(f"{file_name} をダウンロードし、SharePoint にアップロードしました。")
        else:
            print(f"ファイル {file_name} のダウンロードに失敗しました。ステータスコード: {response.status_code}")

    except requests.exceptions.RequestException as e:
        print(f"エラーが発生しました: {e}")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?