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