<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF132:libferris - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF132:libferris&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 22:27:25 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: /* ''libferris'': Опыты с Web 2.0 */</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF132:libferris&amp;diff=12377&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;''libferris'': Опыты с Web 2.0&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:35, 13 июля 2011&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Хотите выгрузить изображение на Flickr или видеоролик на YouTube, не запуская браузер? С ''libferris'' и знаниями '''Бена Мартина''' это возможно.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Хотите выгрузить изображение на Flickr или видеоролик на YouTube, не запуская браузер? С ''libferris'' и знаниями '''Бена Мартина''' это возможно.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Цикл/libferris}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В последних версиях виртуальной файловой системы ''libferris'' сфера ее применения расширилась, включив сайты современных социальных сетей. Чтобы выгрузить свежий видеоролик на YouTube или снимок с мобильного телефона на Flickr, больше не нужен браузер. Ваша любимая программа для просмотра изображений также сможет загружать изображения с этих сайтов.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В последних версиях виртуальной файловой системы ''libferris'' сфера ее применения расширилась, включив сайты современных социальных сетей. Чтобы выгрузить свежий видеоролик на YouTube или снимок с мобильного телефона на Flickr, больше не нужен браузер. Ваша любимая программа для просмотра изображений также сможет загружать изображения с этих сайтов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 13 Jul 2011 10:35:06 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF132:libferris</comments>		</item>
		<item>
			<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF132:libferris&amp;diff=12167&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''''libferris''''' Управляем содержимым web-сайтов через интерфейс файловой системы&lt;br /&gt;
&lt;br /&gt;
==''libferris'': Опыты с Web 2.0==&lt;br /&gt;
&lt;br /&gt;
: Хотите выгрузить изображение на Flickr или видеоролик на YouTube, не запуская браузер? С ''libferris'' и знаниями '''Бена Мартина''' это возможно.&lt;br /&gt;
&lt;br /&gt;
В последних версиях виртуальной файловой системы ''libferris'' сфера ее применения расширилась, включив сайты современных социальных сетей. Чтобы выгрузить свежий видеоролик на YouTube или снимок с мобильного телефона на Flickr, больше не нужен браузер. Ваша любимая программа для просмотра изображений также сможет загружать изображения с этих сайтов.&lt;br /&gt;
&lt;br /&gt;
Сайты социальных сетей, фото- и видеохостинги в данной серии из двух статей я буду называть «web-сервисами», хотя это и термин из области распределенных вычислений: термин «социальная сеть», который теснее связан с Flickr, YouTube, Facebook и т. д., изрядно обвешан другими ассоциациями.&lt;br /&gt;
&lt;br /&gt;
Есть масса программ, помогающих выгрузить контент на тот или иной web-сервис. Некоторые программы-просмотрщики так же позволяют публиковать изображения на популярных онлайн-ресурсах. Однако реализация поддержки на уровне приложения имеет тот недостаток, что в каждой программе должна быть явная поддержка каждого web-сервиса. Вы неизбежно наткнетесь на утилиту, которая не сможет сохранить данные на очередном сайте. А вот бы, например, ваш сайт фотохостинга был просто файловой системой! Тогда можно было бы просмотреть его в любом редакторе, открыть в ''GIMP'', изменить и снова сохранить в сети.&lt;br /&gt;
&lt;br /&gt;
Понятие файловой системы может быть расширено от настольного компьютера до встраиваемых устройств – через сеть. Существует множество мелких утилит для мобильных телефонов, позволяющих публиковать фотографии онлайн. Будет это учетной записью Flickr или статусом Facebook, зависит от того, что позволяет программа. Производители телефонов стараются создавать партнерства с сайтами, таким образом вынуждая вас выбирать одного из их хостинг-провайдеров. Но будь эти сайты файловыми системами, вы бы просто копировали (командой ''cp'') свежий ролик с вашего телефона через Bluetooth прямиком в Vimeo. Во всяком случае, выбор web-сервиса всегда должен оставаться за вами.&lt;br /&gt;
&lt;br /&gt;
===Армия разработчиков===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF132_68_1.jpg|300px]] В ''gfcp'' можно перетащить изображения в список, и они будут загружены на www.23hq.com (как показано здесь).|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
К сожалению для пользователей этих web-сервисов, большинство провайдеров не облегчает разработчикам свободного ПО создание приложений для взаимодействия со своими службами, предоставляя только API Representational State Transfer (Rest), через который разработчик может получить список изображений, постов, видеороликов, комментариев и т. д. и выгрузить новое содержимое. Проблема обычно не в самом API, а в том, что web-сервис ожидает, что приложение аутентифицирует себя.&lt;br /&gt;
&lt;br /&gt;
Для разных сайтов этот процесс немного отличается, но суть его в том, что для получения разрешения действовать от имени пользователя (выгружать данные и т. д.) программа должна пройти авторизацию на сайте. У каждого приложения есть ключ и некий общий с web-сервисом «секрет». Он требуется только на начальной фазе, когда приложение спрашивает сайт и пользователя, можно ли работать с вашим содержимым.&lt;br /&gt;
&lt;br /&gt;
Проблема в том, что «секрет» должен оставаться секретом, а в приложении с открытым исходным кодом спрятать его негде. По сути, то же справедливо и для проприетарных программ – если кто-то захочет узнать пароль, используемый исполняемым файлом утилиты для выгрузки фотографий во Flickr, он сможет извлечь его уймой способов. Хотя пароль не передается по сети, он весьма предсказуемым образом используется перед тем, как у строки берется MD5. Так как приложение скорее всего применяет существующую реализацию MD5, легко прервать выполнение файла и вытащить из него пароль сразу после появления (известного) кода для вычисления хэша. Процесс аутентификации приложения у web-сервиса приведен в документации разработчика Flickr.&lt;br /&gt;
&lt;br /&gt;
К сожалению, в условиях использования web-сервисов обычно указывается, что разработчику нельзя раскрывать «секрет». Но не все потеряно. Приложение с открытым исходным кодом все еще прекрасно может пользоваться Flickr или YouTube, нужно только дать ему ключ приложения и пароль. Это как автомобиль без ключа зажигания – когда вы добудете ключ, он заведется.&lt;br /&gt;
&lt;br /&gt;
Так каждый пользователь открытого ПО становится и «разработчиком». Он заходит на нужный web-сервис, регистрируется в системе как разработчик и получает ключ приложения и «секрет». Поместив их в файл, он может авторизовать созданное приложение (фактически – открытую утилиту, которую он скомпилировал и установил) у web-сервиса и начать им пользоваться. Условия использования сервиса для разработчика в этом случае могут приниматься или отвергаться каждым пользователем по его желанию. Конечно, для пользователя это лишнее неудобство, но это единственный способ распространения открытой программы, при котором условия использования сервиса не будут нарушены путем разглашения секретной информации.&lt;br /&gt;
 &lt;br /&gt;
Обычно для коммерческих и бесплатных приложений предусмотрены различные условия использования web-сервисов. Так как файловую систему легко применить в коммерческих целях, выбирать условия использования сервиса должен пользователь.&lt;br /&gt;
&lt;br /&gt;
===Входим на сайт===&lt;br /&gt;
&lt;br /&gt;
Для Flickr получите ключ API и «секрет» по адресу http://www.flickr.com/services/api/keys/apply и запишите их в файлы '''~/.ferris/flickr-api-key.txt''' и '''~/.ferris/flickr-api-secret.txt''' соответственно. Ключи и «секреты» для всех web-сервисов хранятся в каталоге '''~/.ferris''' в отдельных файлах.&lt;br /&gt;
&lt;br /&gt;
Для фотохостинга 23hq вы можете создать свои ключ и «пароль» самостоятельно. Их следует сохранить в файлах '''23hq-api-key.txt''' и '''23hq-api-secret.txt''', соответственно. Эта политика может измениться в будущем, но поскольку 23hq использует Flickr API, для его ключа и «секрета» применяются те же самые файлы.&lt;br /&gt;
&lt;br /&gt;
Чтобы настроить доступ к Facebook, зарегистрируйте «приложение» и поместите ключ API и «секрет» в файлы '''facebook-api-key.txt''' и '''facebook-api-secret.txt'''. Настройка доступа к Facebook – один из наиболее трудоемких процессов, потому что вместо простого получения ключа и «секрета» она напоминает написание небольшого web-приложения.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF132_69_1.jpg|300px]] Аутентификация в Facebook через ''ferriscapplet-auth''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Чтобы получить разрешение на выгрузку в Vimeo, нам понадобилось около недели – все может измениться, но по крайней мере готовьтесь подождать. Из раздела '''Ресурсы''' в конце урока вы узнаете, где добыть ключ и «секрет» для Vimeo; поместите их в файлы '''vimeoapi-key.txt''' и '''vimeo-api-secret.txt''' соответственно. Обратите внимание, что нужно явно отправить запрос на получение ключа через web-интерфейс.&lt;br /&gt;
&lt;br /&gt;
Получение ключа и «секрета» – только полпути к монтированию сайтов. Далее запустите приложение ''ferris-capplet-auth'' (см. рисунок), выберите web-сервис, в котором вы хотите авторизоваться с помощью ''libferris'', и нажмите на кнопку '''Authenticate''' [Аутентификация]. Если ключ API в порядке, появится диалог с URL-адресом и кнопкой, позволяющей открыть его в ''Firefox''. Сделав это, вы сможете сообщить web-сервису, что авторизуете взаимодействие с ''libferris'' (с вашими ключом API и паролем). Затем вернитесь в диалог ''ferris-capplet-auth'' и нажмите на кнопку '''OK''', так что ''libferris'' свяжется с web-сервисом для завершения аутентификации.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь|Содержание=Для передачи данных на web-сервис используется каталог '''upload''', а имя файла выдает сам web-сервис.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
После исчезнования диалога интерфейс ''ferris-capplet-auth'' должен показать вам статус '''‘authentication OK’''' для этого web-сервиса. Теперь мы готовы его смонтировать.&lt;br /&gt;
&lt;br /&gt;
Для Google на данный момент ''libferris'' поддерживает только клиентский вход (Client Login). Пока ''libferris'' не получил поддержку дополнительного API аутентификации Google, нужно передавать ему имя пользователя и пароль напрямую.&lt;br /&gt;
&lt;br /&gt;
===Не только для суперкомпов===&lt;br /&gt;
&lt;br /&gt;
Так как ''libferris'' поддерживает монтирование множества файловых систем, она может показаться новичкам, особенно тем, кто захочет скомпилировать ее из исходников, немного громоздкой. ''Libferris'' доступна в двоичных пакетах для последних версий Fedora, а также для устройств Maemo Diablo (N8x0). Часть из предлагаемых ''libferris'' вещей лучше всего выполняется на быстром процессоре с не менее чем 4 ГБ ОЗУ, а часть сработает и на более скромной системе с процессором ARM частотой 400 МГц и 128 МБ ОЗУ.&lt;br /&gt;
&lt;br /&gt;
===Эти забавные файлы===&lt;br /&gt;
&lt;br /&gt;
Итак, теперь мы готовы порезвиться с некоторыми сайтами. Ура! ''Libferris'' – виртуальная файловая система адресного пространства пользователя. Она во многом похожа на ''gnome-vfs'' (или ''gio'') или ''KIO slaves'' в KDE. Можно либо пользоваться клонами ''coreutils'', типа переделок ''cp'' – ''ferriscp'' и ''gfcp'', либо смонтировать саму ''libferris'' с помощью ''Fuse'' и применять утилиты для работы с обычными файловыми системами.&lt;br /&gt;
&lt;br /&gt;
Команда ''ferriscp'' работает в консоли как ''cp'', а ''gfcp'' открывает графическое окно ''GTK''. Обе имеют одинаковый набор ключей командной строки, хотя ''ferriscp'' молча игнорирует опции, относящиеся к графическому интерфейсу. Также существуют команды ''ferrisls, ftouch, fcat, fmkdir'' и т. д. – это клоны известных утилит командной строки с небольшими расширениями тут и там.&lt;br /&gt;
&lt;br /&gt;
Видеофайл загружается на сайт таким образом:&lt;br /&gt;
&lt;br /&gt;
 $ gfcp ~/my-video.avi youtube://upload/&lt;br /&gt;
&lt;br /&gt;
А как насчет видео, которое вы сняли на свой смартфон? Если вы можете смонтировать телефон через Bluetooth с помощью ''obexfs'', загрузка видеофайла на сайт делается так:&lt;br /&gt;
&lt;br /&gt;
 $ gfcp ~/fuse/my-phone/.../latest.mp4 youtube://upload/&lt;br /&gt;
&lt;br /&gt;
Хотите загрузить изображение на 23hq (или другой сайт, который использует Flickr API)? Вот вам набор команд:&lt;br /&gt;
&lt;br /&gt;
 $ alias 23hqu=”ferriscp --target-directory 23hq://me/upload”&lt;br /&gt;
 $ 23hqu /tmp/foo.jpg&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь|Содержание=Общение с web-сервисами происходит по протоколу REST, потому что он очень прост и хорошо отражает то, как web-браузеры получают и отправляют информацию.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Команда ''ferris-redirect'' работает так же, как оператор перенаправления ''bash &amp;gt;''. Зная, что последовательность '''| ferrisredirect''' эквивалентна '''&amp;gt;''', вы сможете перенаправлять данные в любую файловую систему ''libferris''. Укажите имя файла, в который нужно записать данные, и стандартный поток ввода ''ferris-redirect'' будет выведен в этот файл.&lt;br /&gt;
&lt;br /&gt;
 $ ftouch google://docs/datefileA.txt&lt;br /&gt;
 $ date | ferris-redirect google://docs/datefileA.txt&lt;br /&gt;
 $ fcat google://docs/datefileA.txt&lt;br /&gt;
 Thu Aug 20 22:19:49 EST 2009&lt;br /&gt;
&lt;br /&gt;
===API Flickr===&lt;br /&gt;
&lt;br /&gt;
Учтите, что API Flickr поддерживается множеством сайтов, и любой из них должен быть доступен вам через ''libferris''. Если интересный вам сайт с API Flickr «не дружит» с ''libferris'', потребуется лишь создать производный класс от '''WebPhotos''' в '''libferriswebphotos_shared.cpp''' и возвратить URL-адрес вашего сайта и пути к ключу приложения и «секрету». Вы наверняка захотите расширить ''ferris-capplet-auth'', чтобы аутентифицировать пользователей через графический интерфейс.&lt;br /&gt;
&lt;br /&gt;
Реализация API Flickr началась в середине 2008 года с поддержки выгрузки фотографий. Это подразумевает возможность установки прав доступа по умолчанию через расширенные атрибуты (Extended Attributes), которые передаются посредством Flickr API вместе со снимком. Интерфейс Extended Attribute (EA) файловой системы позволяет связывать с файлами произвольные метаданные в формате «ключ–значение».&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF132_70_1.jpg|300px]] В окне ''ferris-capplet-auth'' есть набор опций для загрузки изображений на сайты, поддерживающие Flickr API.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
В ''libferris'' концепция расширенных атрибутов виртуализирована, и они могут сохраняться на диске и считываться с него или получаться другими способами. Например, чтение атрибута MD5 заставит ''libferris'' вычислить MD5‑хэш содержимого файла и вернуть его вам. ''Libferris'' может также перекрывать метаданные приложений; например, тэги, назначенные в ''F-Spot'', являются для ''libferris'' такими же расширенными атрибутами.&lt;br /&gt;
&lt;br /&gt;
Так как ''libferris'' поддерживает метаданные через расширенные атрибуты, можно заставить его скопировать некоторые из них на Flickr вместе с вашей фотографией. Как видно на экранном снимке, я включил размер, хэш MD5 и все метаданные из программы ''F-Spot'' во все выгрузки на 23hq. Опубликовав фотографию, ''libferris'' записывает некоторые новые атрибуты в локальный файл изображения. Имя сайта, на который был выгружен снимок, сохраняется в ''webphotoservice'', а идентификатор фотографии – в ''webphoto-photo-id''. Таким образом, легко увидеть, выгружено ли изображение, и если да – получить его адрес на сайте.&lt;br /&gt;
&lt;br /&gt;
===Экономим время на команды===&lt;br /&gt;
&lt;br /&gt;
Набирать ''ferris-redirect'' каждый раз при записи данных в файлы довольно нудно, но можно заставить ''Bash'' заменить это на более удобные команды перенаправления в ''libferris''-совместимом тексте.&lt;br /&gt;
&lt;br /&gt;
Для ввода ''Bash'' использует утилиту ''readline'', у которой есть файл настройки, позволяющий заменить одну текстовую строку другой. Чтобы это заработало, добавьте следующие ниже строки в '''~/.inputrc'''. После этого в новых сеансах ''Bash'' для перенаправления данных в ''ferris-redirect'' вы сможете набрать только знак ‘больше’.&lt;br /&gt;
&lt;br /&gt;
Эти команды имитируют стандартные «дописать» и «усечь» и позволят перенаправить данные в любую файловую систему ''libferris''.&lt;br /&gt;
&lt;br /&gt;
 $include /etc/inputrc&lt;br /&gt;
 “&amp;gt;&amp;gt;&amp;gt;”: “| ferris-redirect “&lt;br /&gt;
 “&amp;gt;&amp;gt;|”: “| ferris-redirect -T “&lt;br /&gt;
&lt;br /&gt;
===''gfcp''===&lt;br /&gt;
&lt;br /&gt;
Команды, приведенные в листинге ниже, могут это прояснить. ''Gfcp'' копирует файл изображения в мою учетную запись Flickr. Поскольку я задал '''Default Include EA And Value Regex''' [Включать атрибуты по умолчанию] как ‘(size|md5)’, я увижу тэги, показывающие размер и хэш MD5 исходного изображения на flickr.com. Вторая команда выводит некоторые метаданные локального файла изображения; как видите, ''libferris'' автоматически сохраняет идентификатор фотографии и имя web-сервиса в исходном файле фотографии. С помощью этих двух атрибутов мы получаем адрес изображения на Flickr – www.flickr.com/photos/monkeyiq/3857255129. Так что при просмотре локального файла изображения легко узнать, куда вы его загрузили.&lt;br /&gt;
&lt;br /&gt;
Вот как изображение копируется на Flickr:&lt;br /&gt;
&lt;br /&gt;
 $ gfcp small-test-image.jpg flickr://me/upload&lt;br /&gt;
 $ fls -lh --show-ea=name,size,webphoto-service,webphotophoto-id  small-test-image.jpg &lt;br /&gt;
 small-test-image.jpg   683   flickr 3857255129&lt;br /&gt;
&lt;br /&gt;
В выпадающем списке изменения размера по умолчанию в ''ferris-capplet-auth'' можно задать способ масштабирования снимка перед его выгрузкой на сайт web-сервиса. Это удобно, если вы работаете с фотографиями с разрешением больше 10 Мпикс и хотите загрузить на сайт образец шириной 1280 пикселей вместо исходного файла размером 5 МБ. В ''ferris-capplet-auth'' можно задать только одно измерение, и оно определит ширину или высоту в зависимости от того, что больше у выгружаемого изображения. Например, если это значение равно 1024 и ширина больше, то высота автоматически изменится так, что соотношение сторон останется прежним, и загрузится файл с шириной 1024.&lt;br /&gt;
&lt;br /&gt;
===Me — это я!===&lt;br /&gt;
&lt;br /&gt;
Корень вашей файловой системы Flickr появится в подкаталоге с вашим именем пользователя. Чтобы обеспечить работу универсальных скриптов, директория me ссылается на каталог вашего пользователя, так что flickr://me и flickr://monkeyiq для моей учетной записи одинаковы. Содержимое каталога me показано ниже.&lt;br /&gt;
&lt;br /&gt;
Каталог '''upload''' передает все записанные в него файлы изображений Flickr API, и в результате они появляются на сайте. Каталог '''contacts''' позволяет вам увидеть своих друзей по учетной записи Flickr. В каталогах '''photosets''' и '''not-in-any-photosets''' находятся все ваши изображения, причем в последнем – снимки, не относящиеся ни к одной из категорий. В каталоге '''recent''' находятся недавно загруженные изображения, а в каталоге '''favs''' – изображения, которые вы пометили как избранные.&lt;br /&gt;
&lt;br /&gt;
 $ fls -0 flickr://me&lt;br /&gt;
 by-id&lt;br /&gt;
 contacts&lt;br /&gt;
 favs&lt;br /&gt;
 not-in-any-photosets&lt;br /&gt;
 photosets&lt;br /&gt;
 recent&lt;br /&gt;
 upload&lt;br /&gt;
&lt;br /&gt;
Каталог '''by-id''' позволяет найти изображение по его числовому идентификатору '''ID'''. Это последняя часть адреса, который вы видите в браузере. Например, в адресе www.flickr.com/photos/gromgull/3831809948 '''ID''' фотографии – 3831809948. В файле с именем, соответствующим идентификатору фотографии, в каталоге '''by-id''' можно найти метаданные снимка. Если прочесть этот файл, например, командой ''cat'', вы получите версию изображения в самом большем доступном размере. Например, две следующие команды скачивают изображение и отображают его локально.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=Хотя условия использования некоторых web-сервисов могут ограничивать ваши возможности, с помощью ''libferris'' удобно делиться фотографиями с друзьями из Flickr, которым недосуг просматривать снимки на вашей домашней странице.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
 # This is us getting metadata and an image off Flickr through the filesystem:&lt;br /&gt;
 $ fls --xml flickr://me/by-id/3831809948&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?xml version=”1.0” encoding=”UTF-8” standalone=”no” ?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;ferrisls&amp;gt;&lt;br /&gt;
 &amp;lt;ferrisls mtime-display=”70 Jan 1 10:00”&lt;br /&gt;
 name=”3831809948” title=””&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;url=”webphotos:///flickr/.../3831809948”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 webphoto-id=”3831809948”/&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;/ferrisls&amp;gt;&lt;br /&gt;
 $ fcat flickr://me/by-id/3831809948 &amp;gt;| /tmp/out.jpg&lt;br /&gt;
 $ gimp /tmp/out.jpg&lt;br /&gt;
 $ fcat flickr://me/by-id/3831809948 | okular -&lt;br /&gt;
&lt;br /&gt;
Просмотрев содержимое каталогов '''favs, not-in-any-photosets''' или '''photosets''', вы увидите метаданные всех фотографий, которые вы пометили как избранные или поместили в фотоальбомы.&lt;br /&gt;
&lt;br /&gt;
Опять же, как и в случае с каталогом '''by-id''', при чтении файла из каталога '''favs''' с web-сервиса будет загружена фотография с наибольшим из доступных разрешений. В своих фотоальбомах вы можете заметить, что у каждой фотографии есть каталог '''&amp;lt;ID&amp;gt;_comments'''. Комментариям к фотографии соответствуют виртуальные файлы в нем, как показано ниже. Для создания нового комментария просто запишите новый файл в каталог комментариев. Об имени файла не беспокойтесь, так как вы вряд ли сможете угадать нужное – ''libferris'' позволяет задать любое имя файла, не используемое в данный момент, и переименует файл, когда он получит корректное имя от API Flickr. Также можно записать данные в существующий файл с комментарием, как показано в последней команде. Это удобнее, если вы пользуетесь файловым менеджером и не хотите возиться с именами файлов, чтобы изменить комментарий.&lt;br /&gt;
&lt;br /&gt;
 #Создание и обновление комментариев к изображениям на Flickr через файловую систему:&lt;br /&gt;
 $ fls -0 flickr://me/not-in-any-photosets/443571910_comments&lt;br /&gt;
 7213593-443571910-72157621814094035 …&lt;br /&gt;
 monkeyiq 09 Aug 4 11:48  four more&lt;br /&gt;
 7213593-443571910-72157621814721241 …&lt;br /&gt;
 monkeyiq 09 Aug 4 13:06&lt;br /&gt;
 7213593-443571910-72157621814771773 …&lt;br /&gt;
 monkeyiq 09 Aug 4 13:  test9&lt;br /&gt;
 7213593-443571910-72157621888320960 ... monkeyiq 09 Jul&lt;br /&gt;
 30 12:00 water dragon&lt;br /&gt;
 $ echo what you looking at | ferris-redirect -T   flickr://me/not-in-any-photosets/443571910_comments/new&lt;br /&gt;
 $ echo test10 | ferris-redirect -T flickr://me/not-in-any-photosets/443571910_comments/7213593-443571910-72157621814771773&lt;br /&gt;
&lt;br /&gt;
Если создать расширенный атрибут (EA) '''tag:foo''' у изображения в файловых системах flickr:// или 23hq://, ''libferris'' попытается задать тэг '''‘foo’''' для изображения спомощью API Flickr. Точно также, если записать '''‘0’''' в '''tag:foo''', ''libferris'' попытается удалить тэг '''‘foo’''' у изображения через API Flickr.&lt;br /&gt;
&lt;br /&gt;
Просмотр директории '''flickr://me/contacts''' немного озадачивает: у каждого друга здесь есть собственный каталог. В каталогах друзей находятся их фотоальбомы и избранные фотографии. Так можно узнать, какие снимки друзья считают интересными. Обратите внимание, что возможна загрузка видео с помощью API Flickr, если сервис позволяет это. Я смог загрузить на сайт Flickr несколько видеороликов.&lt;br /&gt;
&lt;br /&gt;
В будущем планируется более плотная поддержка геотэггинга в ''libferris''. Также было бы очень здорово запускать ''rsync'', чтобы обновлять в API Flickr зеркало локальной файловой системы, но с этим пока есть проблемы.&lt;br /&gt;
&lt;br /&gt;
===Ресурсы===&lt;br /&gt;
&lt;br /&gt;
* Геотэггинг в ''libferris'': http://www.linux.com/archive/feature/56674&lt;br /&gt;
* Документация разработчика Flickr: http://www.flickr.com/services/api/auth.howto.desktop.html&lt;br /&gt;
* Получение ключа и «секрета» API Flickr: http://www.flickr.com/services/api/keys/apply&lt;br /&gt;
* Ключ и «секрет» 23hq: http://www.23hq.com/doc/api/faq , http://www.23hq.com/doc/api/auth&lt;br /&gt;
* Ключ Youtube: http://code.google.com/apis/youtube/dashboard&lt;br /&gt;
* Ключ Facebook: http://wiki.developers.facebook.com/index.php/Connect/Setting_Up_Your_Site&lt;br /&gt;
* Ключ Vimeo: http://www.vimeo.com/api/docs/desktopauth&lt;br /&gt;
* Клиентский вход Google: http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html&lt;br /&gt;
* Дополнительное API аутентификации Google: http://code.google.com/apis/accounts/docs/GettingStarted.html&lt;/div&gt;</description>
			<pubDate>Mon, 20 Jun 2011 11:21:12 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF132:libferris</comments>		</item>
	</channel>
</rss>