※ これから記載する事項は、私が所属する会社とは切関係のない事柄です。
今回は「B2C Commerce のその他 Salesforce 製品との接続」シリーズとして Commerce API, WebDAV について紹介します。
Commerce API については以前紹介した「Salesforce B2C CommerceのヘッドレスAPIを呼んでみる」シリーズをご覧ください。
今回は WebDAV のみについて紹介したいと思います。
WebDAV とは?
出典:フリー百科事典『ウィキペディア(Wikipedia)』
WebDAV(Web-based Distributed Authoring and Versioning、ウェブダブ)はHypertext Transfer Protocolを拡張したもので、Webサーバ上のファイル管理を目的とした分散ファイルシステムを実現するプロトコルである。
出典:ChatGPT
WebDAV (Web Distributed Authoring and Versioning) は、HTTP(Hypertext Transfer Protocol)プロトコルを使用して、Web サーバー上のファイルを編集、更新、バージョン管理するための拡張機能です。WebDAV を使用すると、クライアントアプリケーション(WebDAV クライアント)を介して、WebDAV サーバーに接続し、ファイルを読み書きすることができます。
接続内容とポイント
-
WebDAV Client が WebDAV Server に対してファイル操作を行います。
-
B2C Commerce の(違うインスタンス上に構築されていたとしても)インスタンス同士の WebDAV での操作はできません。
-
クレデンシャルの種類には下記の2種類があり、それぞれのクレデンシャルに対してアクセスできるフォルダーに制限をかけることができます。
-
1.Business Manager ユーザーのクレデンシャル
- Business Manager を利用するユーザーごとに制限をかけることが可能です
- Business Manager の制限をかける画面:
- 管理 > 組織 > 役割 > {ユーザに紐づいている役割} - WebDAV の許可
-
2.Account Manager で作成する API Client のクレデンシャル
- アプリケーションなどの API を利用するクライアント単位で制限をかけることが可能です
- Business Manager の制限をかける画面:
- 管理 > 組織 > クライアントの WebDAV 許可
-
接続方法
今回は Business Manager ユーザーのクレデンシャル情報を利用して下記の2つの方法を試してみます。(Account Manager で作成する API Client のクレデンシャルの設定方法についてはこちらをご覧ください)
- Mac の Finder から接続する方法
- curl コマンドで接続する方法
(試す前に) Business Manager ユーザーのクレデンシャル情報(ID、パスワード)の取得
まず接続を行う前に B2C Commerce の WebDAV サーバーに接続するためのクレデンシャル情報を取得します。
上部右上のプロフィールアイコンをクリックすると下記のようなマイプロフィール画面が表示されます。そこのログインという項目から ID を取得します。(Eメールアドレスになっているかと思います)
さらに「アクセスキーの管理」のリンクをクリックしパスワードとなるアクセスキーを生成する画面に遷移します。
アクセスキーを生成する画面で「アクセスキーの生成」ボタンをクリックし、表示されたポップアップから「WebDAV のファイルアクセスと UX Studio」を選択し「生成」ボタンをクリックし生成を行います。
生成を行うとアクセスキーが表示されるのでコピーしておきます。念の為ファイルとしてダウンロードしておくのもおすすめです。
権限の設定
今回は Administrator の役割をアサインしているので、すべてのフォルダにアクセスできるのですが、ここではどのフォルダいにアクセスできるかを確認・編集する方法だけ紹介しておきます。
下記のように、 管理 > 組織 > 役割 > Administrator - WebDAV の許可 へアクセスすると、Administrator に割り当てられている権限を確認することができ、役割によっては編集することも可能です。
Mac の Finder から接続する方法
接続の方法はこちらを参考にしました。
Mac で Finder を開き、 移動 > サーバーへの接続 をクリックしポップアップを表示します。
今回は Logs フォルダにアクセスしますのでURL入力欄に https://{domain}.dx.commercecloud.salesforce.com/on/demandware.servlet/webdav/Sites/Logs
というフォーマットで入力し接続します。
補足:
入力するURLは Busness Manger の 管理 > サイトの開発 > 開発セットアップ から確認できます。
接続しようとするとID(名前)とパスワードを求められますので、上記「Business Manager ユーザーのクレデンシャル情報(ID、パスワード)の取得」で取得したID・パスワードを入力し接続します。
接続が完了すると下記のように B2C Commerce 上の WebDAV サーバーにあるファイルが表示され操作することが可能です。
curl コマンドで接続する方法
WebDAV を curl コマンドで利用する方法はここが参考になりました。
今回は Logs フォルダ内のファイル一覧を取得してみたいと思います。
下記の curl コマンドを実行します。
curl --user 'ID:Password' 'https://{domain}.dx.commercecloud.salesforce.com/on/demandware.servlet/webdav/Sites/Logs'
下記のように HTML の形式でフォルダ内のファイル一覧を取得できました。
接続データとポイント
ファイルの制限についてはこちらを参考にしてください。下記にポイントをまとめます。
- 必ず SSL 接続が必要となります。
- 一回での最大アップロード容量は 500 MB です。またあまりに時間がかかる場合はタイムアウトになってしまうので、サポートに問い合わせてください。
- 一回での最大ダウンロード容量は 200 MB です。