メインコンテンツまでスキップ

ドライブアップロード

Misskeyのドライブはファイルストレージ機能です。画像や動画などのファイルをアップロードし、ノートに添付できます。

ファイルのアップロード

import 'dart:io';

final file = File('/path/to/image.jpg');
final bytes = await file.readAsBytes();

final driveFile = await client.drive.files.create(
name: 'image.jpg',
type: 'image/jpeg',
bytes: bytes,
);

print(driveFile.id);
print(driveFile.url);

ファイル一覧の取得

// ドライブのファイル一覧
final files = await client.drive.files.list();

// フォルダを指定して取得
final filesInFolder = await client.drive.files.list(
folderId: 'folder_id',
);

// ページング
final olderFiles = await client.drive.files.list(
untilId: files.last.id,
);

フォルダ管理

// フォルダを作成
final folder = await client.drive.folders.create(name: '写真');

// サブフォルダを作成
final subfolder = await client.drive.folders.create(
name: '2024年',
parentId: folder.id,
);

// フォルダ一覧
final folders = await client.drive.folders.list();

// フォルダを削除
await client.drive.folders.delete(folderId: folder.id);

ノートへの添付

アップロードしたファイルのIDをノート作成時に指定します。

// ファイルをアップロード
final driveFile = await client.drive.files.create(
name: 'photo.jpg',
type: 'image/jpeg',
bytes: imageBytes,
);

// ノートに添付して投稿
final note = await client.notes.create(
text: '今日の写真です',
fileIds: [driveFile.id],
);

複数ファイルを同時に添付することもできます(最大16件)。

final note = await client.notes.create(
text: 'アルバム',
fileIds: [file1.id, file2.id, file3.id],
);

ドライブの使用容量

final stats = await client.drive.stats();
print('使用容量: ${stats.usage} バイト');
print('容量上限: ${stats.capacity} バイト');