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