コンテンツにスキップ

公式なQFieldCloud SDKとCLI

qfieldcloud-sdkQFieldCloud API に接続する公式なクライアントであり、Pythonのモジュールとして、もしくはコマンドラインから直接使用できます。

備考

qfieldcloud-sdkは Python >=3.6以上が必要です。

インストール

pip install qfieldcloud-sdk

モジュールの使い方

import requests
from qfieldcloud_sdk import sdk

client = sdk.Client(
    url="https://app.qfield.cloud/api/v1/",
    username="user1",
    password="pass1",
)

try:
    projects = client.list_projects()
except requests.exceptions.RequestException:
    print("Oops!")

CLIの使い方

公式なQFieldCloudのCLIツールです。

使用方法

qfieldcloud-cli [OPTIONS] COMMAND [ARGS]...

# logs in user "user" with password "pass"
qfieldcloud-cli login user pass

# gets the projects of user "user" with password "pass" at "https://localhost/api/v1/"
qfieldcloud-cli -u user -p pass -U https://localhost/api/v1/ list-projects

# gets the projects of user authenticated with token `QFIELDCLOUD_TOKEN` at "https://localhost/api/v1/" as JSON
export QFIELDCLOUD_URL=https://localhost/api/v1/
export QFIELDCLOUD_TOKEN=017478ee2464440cb8d3e98080df5e5a
qfieldcloud-cli --json list-projects

フィルター

いくつかのコマンドでは、--filterオプションを使って、ファイル名に基づいた結果のフィルタを定義することができます(例:download-filesコマンド)。

フィルタはUnixシェルスタイルのワイルドカードをサポートしています。シェルスタイルのワイルドカードで使われる特殊文字は以下の通りです。

パターン 意味
* 全てにマッチする
? いずれか1文字にマッチする
[seq] いずれかの文字に順番にマッチする
[!seq] いずれかの文字にランダムにマッチする

リテラルマッチの場合、メタ文字を括弧で囲みます。例えば、'[?]''?'という文字にマッチします。

  • qfieldcloud-cli --filter 'DCIM/*.jpg'
  • qfieldcloud-cli --filter 'attachments/documentation-??.pdf'

グローバルオプションの概要

-U, --url TEXT                  URL to the QFieldCloud API endpoint. If not
                                passed, gets the value from QFIELDCLOUD_URL
                                environment variable. Default:
                                https://app.qfield.cloud/api/v1/
-u, --username TEXT             Username or email.
-p, --password TEXT
-t, --token TEXT                Session token.
--json / --human                Output the result as newline formatted json. Default: False
--verify-ssl / --no-verify-ssl  Verify SSL. Default: True
--help                          Show this message and exit.

環境変数はいくつかの一般的なグローバル・オプションを渡す代わりに使用できます。

  • QFIELDCLOUD_API - QFieldCloud APIのエンドポイントのURL
  • QFIELDCLOUD_USERNAME - QFieldCloudユーザー名もしくはEmailアドレス。QFIELDCLOUD_PASSWORD変数の設定が必要です。
  • QFIELDCLOUD_PASSWORD -パスワード。QFIELDCLOUD_USERNAMEの設定が必要です。
  • QFIELDCLOUD_TOKEN - ユーザー名とパスワードを渡す代わりに使用できます。トークンはqfieldcloud-cli loginを使うことで取得できます。
  • QFIELDCLOUD_VERIFY_SSL - 0に設定すると--no-verify-sslを渡すのと同じ効果があります。

コマンドの概要

  login             Login to QFieldCloud.
  logout            Logout and expire the token.
  list-projects     List QFieldCloud projects.
  list-files        List QFieldCloud project files.
  create-project    Creates a new empty QFieldCloud project.
  delete-project    Deletes a QFieldCloud project.
  upload-files      Upload files to a QFieldCloud project.
  download-files    Download QFieldCloud project files.
  delete-files      Delete QFieldCloud project files.
  list-jobs         List project jobs.
  job-trigger       Triggers a new job.
  job-status        Get job status.
  package-latest    Check project packaging status.
  package-download  Download packaged QFieldCloud project files.

login

QFieldCloudにログイン

qfieldcloud-cli login [OPTIONS] USERNAME PASSWORD

logout

QFieldCloudからログアウト

qfieldcloud-cli logout

list-projects

QFieldCloudプロジェクトを一覧表示する

qfieldcloud-cli list-projects [OPTIONS]

Options:
  --include-public / --no-public  Includes the public project in the list. Default: False

list-files

QFieldCloudプロジェクトのファイルを一覧表示する

qfieldcloud-cli list-files [OPTIONS] PROJECT_ID

create-project

新しい空のQFieldCloudプロジェクトを作成する

qfieldcloud-cli create-project [OPTIONS] NAME

Options:
  --owner TEXT                Owner of the project. If omitted, the current
                              user is the owner.
  --description TEXT          Description of the project.
  --is-public / --is-private  Mark the project as public.

delete-project

QFieldCloudプロジェクトを削除する

qfieldcloud-cli delete-project [OPTIONS] PROJECT_ID

upload-files

ファイルをQFieldCloudプロジェクトにアップロードする。

qfieldcloud-cli upload-files [OPTIONS] PROJECT_ID PROJECT_PATH

Options:
  --filter TEXT                   Do not upload the whole project, but only
                                  the files which match the glob.
  --throw-on-error / --no-throw-on-error
                                  If any project file upload fails stop
                                  uploading the rest. Default: False

download-files

QFieldCloudプロジェクトファイルをダウンロードする。

qfieldcloud-cli download-files [OPTIONS] PROJECT_ID LOCAL_DIR

Options:
  --filter TEXT                   Do not download the whole project, but only
                                  the files which match the glob.
  --throw-on-error / --no-throw-on-error
                                  If any project file downloads fails stop
                                  downloading the rest. Default: False
  --force-download/--no-force-download
                                 Download file even if it already exists locally.
                                  Default: False

delete-files

QFieldCloudプロジェクトのファイルを削除する

qfieldcloud-cli delete-files [OPTIONS] PROJECT_ID PATHS...

Options:
  --throw-on-error / --no-throw-on-error
                                  If any project file delete operations fails
                                  stop, stop deleting the rest. Default: False

job-list

プロジェクトのジョブを一覧表示する。

qfieldcloud-cli list-jobs [OPTIONS] PROJECT_ID

Options:
  --type JOBTYPES  Job type. One of package, delta_apply or
                   process_projectfile.

job-trigger

新しいジョブをトリガーする。

qfieldcloud-cli job-trigger [OPTIONS] PROJECT_ID JOB_TYPE

Options:
  --force / --no-force  Should force creating a new job. Default: False

job-status

ジョブステータスを取得する。

qfieldcloud-cli job-status [OPTIONS] JOB_ID

package-latest

プロジェクトのパッケージングのステータスをチェックする。

qfieldcloud-cli package-latest [OPTIONS] PROJECT_ID

package-download

パッケージされたQFieldCloudプロジェクトファイルをダウンロードする。

qfieldcloud-cli package-download [OPTIONS] PROJECT_ID LOCAL_DIR

Options:
  --filter TEXT                   Do not download the whole packaged project,
                                  but only the files which match the glob.
  --throw-on-error / --no-throw-on-error
                                  If any packaged file downloads fails stop
                                  downloading the rest. Default: False
  --force-download/--no-force-download
                                 Download file even if it already exists locally.
                                  Default: False