「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.02.22
XML
カテゴリ: REST API


SharePoint REST APIを使用して、共有ライブラリ内のフォルダを別のライブラリに移動する方法は、次の手順に従います。


移動元のフォルダ内のすべてのアイテムを取得します。

取得したアイテムのメタデータを使用して、移動先のライブラリに新しいフォルダを作成します。

移動元のフォルダ内のアイテムを新しいフォルダに移動します。

必要に応じて、移動元のフォルダを削除します。

以下は、Pythonを使用してフォルダを移動する例です。


python

Copy code

import requests


# SharePointサイトURL

site_url = "https://your-sharepoint-site-url"


# 移動元のフォルダのサーバー相対URL

source_folder_relative_url = "/sites/your-site-name/source-library-name/source-folder-name"


# 移動先のライブラリの名前またはGUID(GUIDを使用する場合は、'/lists/{list-guid}'のURLに置き換えます)

destination_library_name = "destination-library-name"


# 移動先のフォルダの名前

destination_folder_name = "destination-folder-name"


# アクセストークン(適切な方法で取得してください)

access_token = "your-access-token"


# リクエストヘッダー

headers = {

    "Authorization": "Bearer " + access_token,

    "Accept": "application/json;odata=verbose",

    "Content-Type": "application/json;odata=verbose"

}


# 移動元のフォルダ内のすべてのアイテムを取得するためのHTTP GETリクエスト

source_folder_items_response = requests.get(

    f"{site_url}/_api/web/getfolderbyserverrelativeurl('{source_folder_relative_url}')/files",

    headers=headers

)


# 取得したアイテムのメタデータを使用して、移動先のライブラリに新しいフォルダを作成する

create_folder_payload = {

    "__metadata": {"type": "SP.Folder"},

    "ServerRelativeUrl": f"/{destination_library_name}/{destination_folder_name}"

}

create_folder_response = requests.post(

    f"{site_url}/_api/web/folders",

    headers=headers,

    json=create_folder_payload

)


# 移動元のフォルダ内のアイテムを新しいフォルダに移動する

if source_folder_items_response.status_code == 200 and create_folder_response.status_code == 200:

    source_folder_items_data = source_folder_items_response.json()

    for item in source_folder_items_data['d']['results']:

        # アイテムの移動

        move_item_payload = {

            "dest": f"/{destination_library_name}/{destination_folder_name}/{item['Name']}",

            "overwrite": True

        }

        move_item_response = requests.post(

            f"{site_url}/_api/web/getfilebyserverrelativeurl('{item['ServerRelativeUrl']}')/moveto",

            headers=headers,

            json=move_item_payload

        )

        # 移動元のアイテムを削除(オプション)

        if move_item_response.status_code == 200:

            requests.delete(item['__metadata']['uri'], headers=headers)


    print("Folder moved successfully.")

else:

    print("Failed to move folder. Status code:", source_folder_items_response.status_code)

この例では、指定された移動元のフォルダ内のすべてのアイテムを取得し、それらのアイテムを新しいフォルダに移動しています。必要に応じて、移動元のフォルダを削除することもできますが、これはオプションです。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.02.22 07:13:42


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: