Как бекапить фигму
Сегодня фигма написала, что она прекращает продажи в России (figma.com/blog/our-response-to-ukraine). Меня спрашивают и коллеги, и не только, что делать. Пишу, как забекапить файлы из фигмы.
Скачать в png
Если вы хотите скачать макеты в png, см. пост Автоматическое скачивание новых экранов из Цеплина и Фигмы
Скачать исходники
Формат фигмы проприетарный, исходники фигмы можно будет только загрузить в другую фигму (другую команды или личный аккаунт).
Если нужно скачать лишь несколько файлов, скачайте вручную, и не заморачивайтесь со скриптом:
File > Save local copy…
Если нужно скачать несколько файлов, то вручную можно задолбаться. Вот как сделать автоматически
- Выпускаете токен доступа (лучше завести пользователя только с read-only-правами). См. figma.com/developers/api#access-tokens
- Устанавливаете figma-backup из npm (github.com/mimshins/figma-backup). Пакет не наш, ответственности не несу.
npm install -g figma-backup
- Устанавливаете jq:
brew install jq
- Запускаете скрипт, заменив {{переменные}} на значения.
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
- Вы получите папку, в которой будет лежать все файлы, с которым имеет доступ пользователь {{email}}.
- Если нужно запускать регулярно, добавьте в крон и/или в CI-пайплайн.
Готовьтесь, это все работает медленно. Наши 2,5 гигабайта файлов экспортируются 3 часа.
Наверное, как-то можно сделать параллельно, не смотрели. Точно можно сделать вариант «не качать файлы, если они не менялись», пока не заморачивались.
Спасибо, выручило! Есть ошибочка в ссылке на гит figma-backup — в URL закрывающая скобка пролезла.
Спасибо, поправил.
Подскажите, какой скрипт запускать в итоге?
Запуск figma-backup (запускается интерактивный вариант) не помогает, падает на авторизации
Скрипт — это весь текст в пункте 4.
В интерактивном режиме figma-backup-interactive работает? (Должен спросить токен, команду, логин, пароль, список проектов и тайм-ауты). На каком этапе падает?
ERR. Download aborted | Timeout of 1800s exceeded. Не хочет качать( Уже таймаут до 30 мин. добавил
Проверьте, этот файл вручную через интерфейс скачивается? Может быть файл слишком большой вообще и фигма не может его собрать и экспортировать.
Я сейчас проверил, у меня какие-то файлы пошли качаться, вроде более-менее работает.
Не один файл не скачивается((
А какая операционка у вас?
У меня макось.
Можете еще попробовать решение ростелекома, сам я не пробовал, но по сути тоже же самое:
https://github.com/ritds/figma_backup
Подскажи, почему при запуске не интерактивного скрипта в консоли появляется запись: 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
Возникает ошибка ERR. Backup failed | Authorization failed | No element found for selector: form#auth-view-page > input[name=«email»