[Table of contents](README.md#table-of-contents) # Shortcuts A shortcut is a file in the VFS with a `.url` extension. It is served with the `application/internet-shortcut` mime-type. The stack provides a few routes to help manipulate them. ## POST /shortcuts This route can be used to create a shortcut. You can create a shortcut using the `POST /files/:dir-id` route, but the content must respect the `.url` file format. This route offers an easier way to do that. **Note:** a permission to create a file is required to use this route. ### Request ```http POST /shortcuts HTTP/1.1 Host: alice.cozy.example Content-Type: application/vnd.api+json ``` ```json { "data": { "type": "io.cozy.files.shortcuts", "attributes": { "name": "sunset.jpg.url", "dir_id": "629fb233be550a21174ac8e19f003e4a", "url": "https://alice-photos.cozy.example/#/photos/629fb233be550a21174ac8e19f0043af", "metadata": { "target": { "cozyMetadata": { "instance": "https://alice.cozy.example/" }, "app": "photos", "_type": "io.cozy.files", "mime": "image/jpg" } } } } } ``` ### Response ```http HTTP/1.1 201 Created Content-Type: application/vnd.api+json ``` ```json { "_id": "629fb233be550a21174ac8e19f0043af", "_rev": "1-61c7804bdb4f9f8dae5a363cb9a30dd8", "type": "file", "name": "sunset.jpg.url", "dir_id": "629fb233be550a21174ac8e19f003e4a", "trashed": false, "md5sum": "vfEMDpJShs8QeIlsDmw9VA==", "created_at": "2020-02-10T20:38:04Z", "updated_at": "2020-02-10T20:38:04Z", "tags": [], "metadata": { "target": { "cozyMetadata": { "instance": "https://alice.cozy.example/" }, "app": "photos", "_type": "io.cozy.files", "mime": "image/jpg" } }, "size": 62, "executable": false, "class": "shortcut", "mime": "application/shortcut", "cozyMetadata": { "doctypeVersion": 1, "metadataVersion": 1, "createdAt": "2020-02-10T20:38:04Z", "createdOn": "https://bob.cozy.example/", "updatedAt": "2020-02-10T20:38:04Z", "uploadedAt": "2020-02-10T20:38:04Z", "uploadedOn": "https://bob.cozy.example/" } } ``` ## GET /shortcuts/:id This route can be used to get information about a shortcut. A permission to read the file is required to use it. There are two variants, depending on the `Accept` header. ### Request (JSON variant) If the `Accept` header is `application/vnd.api+json` (or `application/json`), the information are returned in JSON-API format. ```http GET /shortcuts/629fb233be550a21174ac8e19f0043af HTTP/1.1 Host: alice.cozy.example Accept: application/vnd.api+json ``` ### Response (JSON variant) ```http HTTP/1.1 200 OK Content-Type: application/vnd.api+json ``` ```json { "data": { "id": "629fb233be550a21174ac8e19f0043af", "type": "io.cozy.files.shortcuts", "attributes": { "name": "sunset.jpg.url", "dir_id": "629fb233be550a21174ac8e19f003e4a", "url": "https://alice-photos.cozy.example/#/photos/629fb233be550a21174ac8e19f0043af", "metadata": { "target": { "cozyMetadata": { "instance": "https://alice.cozy.example/" }, "app": "photos", "_type": "io.cozy.files", "mime": "image/jpg" } } } } } ``` ### Request (Redirection variant) ```http GET /shortcuts/629fb233be550a21174ac8e19f0043af HTTP/1.1 Host: alice.cozy.example Accept: text/html ``` ### Response (Redirection variant) ```http HTTP/1.1 303 See Other Location: https://alice-photos.cozy.example/#/photos/629fb233be550a21174ac8e19f0043af ```