1# mediatool工具
2
3mediatool是一个轻量级的命令行工具集合,开发者可通过此工具操作媒体库资源。媒体库中的图片视频资源会在系统图库中显示。
4
5## 前置条件
6
7- 正常连接设备
8- 系统设置中开启开发者模式
9- 使用hdc shell进入命令行执行模式
10
11## 命令行说明
12
13<!--Del-->
14
15### mediatool send
16
17```shell
18mediatool send <path-to-local-media-file> [-ts] [-tas] [-rf] [-urf]
19```
20
21该命令能够将设备`<path-to-local-media-file>`路径下的图片视频文件推入媒体库中保存。支持保存图片、视频和音频文件。文件在媒体库中会保留原有的名字。`<path-to-local-media-file>`可以为文件夹,mediatool会将文件夹里的所有文件置入媒体库中。保存成功后会打印成功置入的资源的uri。
22
23默认情况下,将媒体文件保存进媒体库是以同步方式创建缩略图,并且置入后```<path-to-local-media-file>```下的文件会被删除。
24
25  | 选项               | 说明             |
26| ---- |--------------- |
27| -ts | 保存图片视频时以同步方式创建缩略图。能够保证缩略图正常生成之后图片视频才会显示,但是会导致保存耗时较长。(默认) |
28| -tas | 保存图片视频时以异步方式创建缩略图。不能与-ts选项同时使用。图片视频保存后会立即显示,不会等待缩略图先生成。保存耗时较短。 |
29| -rf | 媒体文件置入后删除源文件。(默认) |
30| -urf | 媒体文件置入后不删除源文件。不能与-rf选项同时使用。 |
31
32**使用示例:**
33
34```shell
35> mediatool send /data/tmp/MyImage.jpg
36file://media/Photo/3/IMG_1721381297_001/MyImage.jpg # 推图成功,打印推入资源的uri
37```
38
39### mediatool list
40
41```shell
42mediatool list <resource-uri>
43```
44
45该命令能够将`<resource-uri>`指定uri对应的媒体库内资源信息以csv格式打印出来。
46例如媒体库内图片资源A的uri为file://media/Photo/3/IMG_1721381297_001/MyImage.jpg, `mediatool list file://media/Photo/3`或者`mediatool list file://media/Photo/3/IMG_1721381297_001/MyImage.jpg`都能成功打印出该资源信息。
47
48所打印信息包含:
49
50- uri: 媒体资源的uri。
51- display_name: 媒体资源的名字。
52- data: 媒体资源的源文件在设备中的物理路径。
53
54还可以将`<resource-uri>`指定为`all`。`mediatool list all`会将媒体库内所有资源的信息打印出来。
55
56**使用示例:**
57
58```shell
59# 使用存在的uri查询
60> mediatool list file://media/Photo/3
61Table Name: Photos
62uri, display_name, data
63"file://media/Photo/3/IMG_1721381297_001/MyImage.jpg", "MyImage.jpg", "/storage/cloud/100/files/Photo/2/IMG_1721381297_001.jpg"
64
65# 使用格式错误的uri查询
66> mediatool list file://media/Photo/
67[FAIL] uri invalid. uri:file://media/Photo/
68```
69
70<!--DelEnd-->
71
72### mediatool recv
73
74```shell
75mediatool recv <resource-uri> <dest-path>
76```
77
78该命令能够将`<resource-uri>`指定uri对应的媒体库资源的源文件内容导出到`<dest-path>`指定的设备路径下。
79
80`<dest-path>`可以指定为待创建文件路径或者文件夹路径,若为文件夹路径则会导出到该文件夹下,文件保留媒体库中的名字。
81
82当`<dest-path>`指定待创建文件路径时,不能是已经存在文件的路径。
83<!--Del-->
84`<dest-path>`需要指定有权限访问的路径。
85<!--DelEnd-->
86文件导出成功后会打印导出文件的路径。
87
88媒体库资源uri可以通过<!--Del-->`mediatool list all`或者<!--DelEnd-->[mediatool query](#mediatool-query)获取。
89
90将`<resource-uri>`指定为`all`则能够将所有媒体库资源的源文件导出。当`<resource-uri>`为`all`时,`<dest-path>`必须为文件夹路径。
91
92<!--RP1--><!--RP1End-->
93
94**使用示例:**
95
96```shell
97> mediatool recv file://media/Photo/3 /data/local/tmp/out.jpg
98Table Name: Photos
99/data/local/tmp/out.jpg
100```
101
102### mediatool delete
103
104```shell
105mediatool delete <resource-uri>
106```
107
108该命令能够彻底删除`<resource-uri>`指定uri的媒体库资源。被删除的资源无法恢复,请谨慎执行。
109
110媒体库资源uri可以通过<!--Del-->`mediatool list all`或者<!--DelEnd-->或者[mediatool query](#mediatool-query)获取。
111
112将`<resource-uri>`指定为`all`则指定删除所有媒体库资源,并重置媒体库的所有数据。
113
114**使用示例:**
115
116```shell
117> mediatool delete file://media/Photo/3
118[SUCCESS] delete success.
119
120> mediatool delete all # delete all 执行成功不会有任何打印
121```
122
123### mediatool query
124
125```shell
126mediatool query <display-name> [-p] [-u]
127```
128
129该命令能够查询出所有名字为`<display-name>`的媒体库资源,返回资源源文件真实路径或媒体资源uri。默认返回源文件真实路径。
130
131  | 选项               | 说明             |
132| ---- |--------------- |
133| -p | 返回媒体资源源文件在设备中的真实路径。(默认) |
134| -u | 返回媒体资源uri。不能与-p选项同时使用。 |
135
136**使用示例:**
137
138```shell
139# 所查询媒体资源存在
140> mediatool query MyImage.jpg
141find 1 result:
142path
143/storage/cloud/100/files/Photo/2/IMG_1721381297_001.jpg
144
145# 所查询媒体资源不存在
146> mediatool query non_exist.jpg
147find 0 result
148
149# 查询的名字格式不正确
150> mediatool query IMG_001
151The displayName format is not correct!
152
153# 查询媒体资源源文件路径
154> mediatool query MyImage.jpg -p
155find 1 result:
156path
157/storage/cloud/100/files/Photo/2/IMG_1721381297_001.jpg
158
159# 查询媒体资源uri
160> mediatool query MyImage.jpg -u
161find 1 result:
162uri
163"file://media/Photo/2/IMG_1721381297_001/MyImage.jpg"
164```
165