公式なQFieldCloud SDKとCLI
qfieldcloud-sdk
は QFieldCloud 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のエンドポイントのURLQFIELDCLOUD_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