API リファレンス

Files

ファイルとディレクトリの閲覧と管理を行います。マルチマウントストレージ (内部、SD カード、USB) をサポートします。

型定義

bash
type File {
  name: String!
  path: String!
  permission: String!        # "rw" | "r"
  createdAt: String          # ISO 8601, null on some filesystems
  updatedAt: String!         # ISO 8601
  size: Long!                # 0 for directories
  isDir: Boolean!
  childCount: Int!           # 0 for files; child count for directories
  mediaId: String!           # media store ID, empty when unavailable
}

type StorageMount {
  id: String!
  name: String!
  path: String!
  mountPoint: String!
  fsType: String!
  totalBytes: Long!
  usedBytes: Long!
  freeBytes: Long!
  remote: Boolean!
  alias: String!
}

type FileInfo {
  path: String!
  updatedAt: String!
  size: Long!
  tags: [Tag!]!
  data: MediaFileInfo          # image/video/audio metadata, null for other types
}

type MediaFileInfo {
  # Union-like structure; fields vary by media type (image / video / audio)
  width: Int
  height: Int
  duration: Int               # milliseconds (video / audio)
  artist: String
  album: String
  title: String
}

type FavoriteFolder {
  rootPath: String!
  fullPath: String!
  alias: String               # optional display alias, empty when not set
}

操作

query

mounts

利用可能なすべてのストレージボリューム (内部、SD カード、USB) を一覧表示します。

bash
query GetMounts {
  mounts {
    id name path mountPoint fsType totalBytes usedBytes freeBytes remote alias
  }
}
query

recentFiles

すべてのストレージで最近変更されたファイルを一覧表示します。Files UI の「最近」ビューのデータソースです。

bash
query GetRecentFiles {
  recentFiles {
    name path permission createdAt updatedAt size isDir childCount mediaId
  }
}
query

files

ルートパス配下のファイルをページ分割で一覧表示および検索します。空のクエリを渡すとすべて一覧表示されます。

bash
query GetFiles($root: String!, $offset: Int!, $limit: Int!, $query: String!, $sortBy: FileSortBy!) {
  files(root: $root, offset: $offset, limit: $limit, query: $query, sortBy: $sortBy) {
    name path permission createdAt updatedAt size isDir childCount mediaId
  }
}
query

fileInfo

単一ファイルの stat + メディアメタデータ + タグを取得します。サーバーが画像/動画/音声を検出して幅、高さ、長さなどを読み込めるよう fileName を渡します。

bash
query GetFileInfo($id: ID!, $path: String!, $fileName: String!) {
  fileInfo(id: $id, path: $path, fileName: $fileName) {
    path updatedAt size
    tags { id name }
    data { width height duration artist album title }
  }
}
query

fileIds

ファイルシステムパスのリストをメディアストア ID に解決します (インデックスされていない場合は空文字列)。

bash
query GetFileIds($paths: [String!]!) {
  fileIds(paths: $paths)
}
query

uploadedChunks

再開可能なチャンクアップロードで既に受信されたチャンクインデックスを一覧表示します。中断されたアップロードを再開するために使用します。

bash
query GetUploadedChunks($fileId: String!) {
  uploadedChunks(fileId: $fileId)
}
mutation

createDir

新しいディレクトリを作成し、File オブジェクトとして返します。

bash
mutation CreateDir($path: String!) {
  createDir(path: $path) {
    name path permission createdAt updatedAt size isDir childCount mediaId
  }
}
mutation

renameFile

ファイルまたはディレクトリの名前を変更します。

bash
mutation RenameFile($path: String!, $name: String!) {
  renameFile(path: $path, name: $name)
}
mutation

writeTextFile

テキスト内容をファイルに書き込みます。overwrite=false を設定すると、ファイルが既に存在する場合に「(1)」サフィックスを付加します。

bash
mutation WriteTextFile($path: String!, $content: String!, $overwrite: Boolean!) {
  writeTextFile(path: $path, content: $content, overwrite: $overwrite) {
    name path size updatedAt
  }
}
mutation

deleteFiles

正確なパスで 1 つ以上のファイルまたはディレクトリを削除します。

bash
mutation DeleteFiles($paths: [String!]!) {
  deleteFiles(paths: $paths)
}
mutation

copyFile

ファイルまたはディレクトリを宛先パスにコピーします。overwrite を設定すると既存のファイルが置き換えられます。

bash
mutation CopyFile($src: String!, $dst: String!, $overwrite: Boolean!) {
  copyFile(src: $src, dst: $dst, overwrite: $overwrite)
}
mutation

moveFile

ファイルまたはディレクトリを宛先パスに移動します。overwrite を設定すると既存のファイルが置き換えられます。

bash
mutation MoveFile($src: String!, $dst: String!, $overwrite: Boolean!) {
  moveFile(src: $src, dst: $dst, overwrite: $overwrite)
}
mutation

addFavoriteFolder

クイックアクセス用にフォルダをブックマークします。すべてのブックマーク済みフォルダの更新されたリストを返します。

bash
mutation AddFavoriteFolder($rootPath: String!, $fullPath: String!) {
  addFavoriteFolder(rootPath: $rootPath, fullPath: $fullPath) {
    rootPath fullPath alias
  }
}
mutation

removeFavoriteFolder

ブックマーク済みフォルダを削除します。残りのフォルダの更新されたリストを返します。

bash
mutation RemoveFavoriteFolder($fullPath: String!) {
  removeFavoriteFolder(fullPath: $fullPath) {
    rootPath fullPath alias
  }
}
mutation

setFavoriteFolderAlias

ブックマーク済みフォルダに表示されるエイリアスを設定または更新します。空文字列を渡すとエイリアスがクリアされます。

bash
mutation SetFavoriteFolderAlias($fullPath: String!, $alias: String!) {
  setFavoriteFolderAlias(fullPath: $fullPath, alias: $alias) {
    rootPath fullPath alias
  }
}
mutation

deleteChunks

チャンクアップロード fileId のすべての保存済みチャンクを削除します。キャンセルまたは失敗したアップロード後にディスク容量を解放するために使用します。

bash
mutation DeleteChunks($fileId: String!) {
  deleteChunks(fileId: $fileId)
}
mutation

mergeChunks

以前にアップロードされたチャンクを最終ファイルにマージします。isAppFile=true を渡すと、結果を PlainApp のコンテンツアドレス指定可能な AppFile ストア (チャット添付ファイルで使用) にインポートします。

bash
mutation MergeChunks($fileId: String!, $totalChunks: Int!, $path: String!, $replace: Boolean!, $isAppFile: Boolean!) {
  mergeChunks(fileId: $fileId, totalChunks: $totalChunks, path: $path, replace: $replace, isAppFile: $isAppFile)
}