Rose debug info
---------------

Как бекапить фигму

Сегодня фигма написала, что из-за ***** она прекращает продажи в России (figma.com/blog/our-response-to-ukraine). Меня спрашивают и коллеги, и не только, что делать. Пишу, как забекапить файлы из фигмы.

Скачать в png

Если вы хотите скачать макеты в png, см. пост Автоматическое скачивание новых экранов из Цеплина и Фигмы

Скачать исходники

Формат фигмы проприетарный, исходники фигмы можно будет только загрузить в другую фигму (другую команды или личный аккаунт).

Если нужно скачать лишь несколько файлов, скачайте вручную, и не заморачивайтесь со скриптом:
File > Save local copy…

Если нужно скачать несколько файлов, то вручную можно задолбаться. Вот как сделать автоматически

  1. Выпускаете токен доступа (лучше завести пользователя только с read-only-правами). См. figma.com/developers/api#access-tokens
  1. Устанавливаете figma-backup из npm (github.com/mimshins/figma-backup). Пакет не наш, ответственности не несу.
npm install -g figma-backup
  1. Устанавливаете jq:
brew install jq
  1. Запускаете скрипт, заменив {{переменные}} на значения.
FIGMA_TOKEN={{token}}
TEAM_ID={{team-id}}

PROJECTS_ID=$(curl -H "X-FIGMA-TOKEN: $FIGMA_TOKEN" "https://api.figma.com/v1/teams/$TEAM_ID/projects" | jq -j '.projects[] | .id, " "')
echo "$PROJECTS_ID"
echo "====="

npx figma-backup -e "{{email}}" -p "{{password}}" -t "$FIGMA_TOKEN" --projects-ids $PROJECTS_ID
  1. Вы получите папку, в которой будет лежать все файлы, с которым имеет доступ пользователь {{email}}.
  1. Если нужно запускать регулярно, добавьте в крон и/или в CI-пайплайн.

Готовьтесь, это все работает медленно. Наши 2,5 гигабайта файлов экспортируются 3 часа.

Наверное, как-то можно сделать параллельно, не смотрели. Точно можно сделать вариант «не качать файлы, если они не менялись», пока не заморачивались.

Поделиться
Отправить
Запинить
 5960   2022   figma   инструкция   работа
Подписаться на блог…
6 комментариев
Матвей 2022

Спасибо, выручило! Есть ошибочка в ссылке на гит figma-backup — в URL закрывающая скобка пролезла.

Михаил Озорнин 2022

Спасибо, поправил.

Михаил Подрабинек 2022

Подскажите, какой скрипт запускать в итоге?
Запуск figma-backup (запускается интерактивный вариант) не помогает, падает на авторизации

Михаил Озорнин 2022

Скрипт — это весь текст в пункте 4.

В интерактивном режиме figma-backup-interactive работает? (Должен спросить токен, команду, логин, пароль, список проектов и тайм-ауты). На каком этапе падает?

Костя Грисман 2022

ERR. Download aborted | Timeout of 1800s exceeded. Не хочет качать( Уже таймаут до 30 мин. добавил

Михаил Озорнин 2022

Проверьте, этот файл вручную через интерфейс скачивается? Может быть файл слишком большой вообще и фигма не может его собрать и экспортировать.
Я сейчас проверил, у меня какие-то файлы пошли качаться, вроде более-менее работает.

Костя Грисман 2022

Не один файл не скачивается((

Костя Грисман 2022

А какая операционка у вас?

Михаил Озорнин 2022

У меня макось.

Можете еще попробовать решение ростелекома, сам я не пробовал, но по сути тоже же самое:
https://github.com/ritds/figma_backup

Алексей 3 мес

Подскажи, почему при запуске не интерактивного скрипта в консоли появляется запись: File (DS · Campaign Portal (Copy)) successfully downloaded.
(You are seeing this message because the bot has detected network idleness and assumes the download has finished) , но файлов никаких нет. При поднятии интерактивного скрипта загрузка останавливается и сопровождается сообщением: Submitting the login form...ERR. Backup failed | Authorization failed | Navigation timeout of 60000 ms exceeded