ZenWay - Linux сегодня!
  • Главная
  • Форум
  • Контакты
  • Архив
  • Гостевая книга
×
Поиск по сайту
ГлавнаяГрафикаИнтернет ПОДополнительные материалыЗагрузка файлов на ftp из меню Nautilus

Загрузка файлов на ftp из меню Nautilus

Дополнительные материалы, Интернет ПО, ГрафикаПросмотров: 11867Комментарии: 16 января 2010 г.
FTP / Gnome / GTK / Script / Менеджер загрузок / Учебные материалы / Файловый менеджер / Фото

В статье будет рассмотрен скрипт для загрузки файлов на ftp и способ его использования в контекстном меню файлового менеджера Nautilus. Но скрипт не привязан именно к Gnome. Его можно использовать и с Thunar, и в KDE3/4, и из консоли.

Итак, необходимо убедиться, что в системе установлены следующие пакеты:

libnotify-bin nautilus-actions zenity

Открываем текстовый редактор, вставляем в него код ниже, сохранить куда вам удобно и делаем файл исполняемым.

Далее открываем Система > Параметры > Настройка действий в Nautilus:

В появившемся окне создаём новый пункт меню и называем, как нам хочется. При желании можно указать иконку для данного события.

Переходим во вкладку "Command/Команды", находи там свой файл в графе "Path/Путь" и прописываем параметры "%d/%M".

Во вкладке "Conditions/Условия" делаем всё, как на снимке ниже:

Главное не забыть разрешить применять данное действие и для группы файлов (последняя галочка).

Всё, после сохранения и выхода из приложения в контекстном меню появится новый пункт. Теперь выделяем один или группу файлов, кликаем по ним правой клавишей мыши и выбираем что нужно:

и наблюдаем как файлы полились на ftp.

После завершения операции появится итоговое окно с загруженными файлами, откуда можно по мере необходимости копировать ссылки.

Ну вот и всё. Всё просто. Большое спасибо Роману Коноплёву за саму идею и написание скрипта!

Теперь скрипты. Их два варианта.

Первый:

#!/bin/bash
# FTP Uploader
# Написал korodm, vovans, tit (mail: korodm@ya.ru)
# Использовать так: putftp [-g] file [file2 ...]
# Опция -g выводит сслыки на загруженные файлы во всплывающем окне, а если функцию не использовать, то вывод будет в консоль

# вставьте свои данные
FTP="***" # адрес фтп
USER="***" # логин
PASS="***" # пароль
MODE=1 # режим вывода ссылок (0 - в консоли, 1 - в окне)

# проверка опций
while getopts g option
do
case $option in
g) MODE=1;;
# можно вставить еще опции
esac
done
shift $((OPTIND - 1))

OLD_DIR=`pwd` # текущая папка

N_URL=0 # номер ссылки (нужен для массива ссылок)

# цикл необходим для загрузки нескольких файлов
for FILE in `echo $*`
do
NEW_DIR=`dirname $FILE` # папка, в которой лежит файл
FILE_NAME=`echo $FILE | awk -F$NEW_DIR"/" '{ print $2 }'` # вырезаем имя файла

# если файл в том же каталоге, что и скрипт, то предыдущие 2 команды не сработают, поэтому вручную даем имя файлу
if [[ $NEW_DIR = "." ]]
then FILE_NAME=$FILE
fi

cd $NEW_DIR

# подключаемся к фтп, создаем каталог и заливаем файл
ftp -n $FTP <
quote USER $USER
quote PASS $PASS
cd upload
put $FILE_NAME
quit
END

if test $MODE == "1"
then
notify-send "`du -hs $FILE_NAME | awk '{print $2 $1}'`" 2> /dev/null
else
du -hs $FILE_NAME | awk '{print $2 $1}'` 2> /dev/null
fi

cd $OLD_DIR

# создание сслылок для файлов
URL[$N_URL]="ftp://"$FTP"/upload/"$FILE_NAME
let N_URL++
done

# вывод ссылок в зависимости от режима вывода
if test $MODE == "1"
then
notify-send --icon putftp "Загрузка завершена" 2> /dev/null
zenity --list --title "Загруженные файлы" --text "Список загруженных файлов" --editable --column "URLs" ${URL<li>} 2> /dev/null
else
for OUT in ${URL<li>}
do
echo $OUT
done
fi

Второй был чуть позже переписан TIT'ом. Он нагляднее, короче и все файлы заливаются за одно соединение с сервером.

#!/bin/bash

declare "-r" FTP_URL="zenway.ru"
declare "-r" USERNAME="zenway"
declare "-r" PASSWORD="JhEer.78Iue"
# Директория, которая будет создаваться на сервере для заливки файлов. В примере будет создаваться директория с именем МЕСЯЦ_ГОД
declare "-r" DATE=`date '+%m_%Y'`
# Директория, в которую будут заливаться файлы
declare "-r" UPLOAD_DIR="zenway/uploads/"$DATE

declare "-r" ERROR="/dev/null"
declare "-a" OUT_URLS
declare "-a" FTP_COMMANDS
declare COUNT

for COUNT in $*
do
        FTP_COMMANDS=( ${FTP_COMMANDS[@]}"lcd `dirname "$COUNT"`\nput `basename "$COUNT" 2>> "$ERROR"`\n" )
        OUT_URLS=( ${OUT_URLS[@]}"http://"$FTP_URL"/"$UPLOAD_DIR"/`basename "$COUNT" 2>> "$ERROR"` " " `du -hs basename "$COUNT" | awk '{print $1}' ` " )
        NOTIFY=( ${NOTIFY[@]}"notify-send "basename $COUNT"\n")
done

`ftp "-n" "$FTP_URL" <
user "$USERNAME" "$PASSWORD"
prompt
image
cd "$UPLOAD_DIR"
\`echo "-e" "${FTP_COMMANDS[@]}" 2>> "$ERROR"\`
bye
EOF` >> "$ERROR" 2>> "$ERROR"

# Вывод результата через GUI
zenity --list --title "Загруженные файлы" --text "Список загруженных файлов" --editable --column "URLs" --column "Size" "${OUT_URLS[@]}"

# Вывод в консоль
# echo "-e" "${OUT_URLS[@]}"
Автор: vovans
Еще записи по теме
GNOME Podcasts
GNOME Podcasts
rTorrent / ruTorrent
rTorrent / ruTorrent
Transmission Remote GUI
Transmission Remote GUI
Rmldonkey
Rmldonkey
StreamRipStar
StreamRipStar
Wicd
Wicd

Комментариев: 1 RSS

1vovans16-02-2010 14:14

Сначала как-то не обратил внимание, когда скрипты публиковал, а сейчас заметил, что в скриптах нет обработки изображений.

На ноуте у меня проверяется тип файла. Если это изображение, тогда проверяется ширина оного. Если ширина превышает некое значение, тогда делается миниатюра и кладётся в uploads/mini, а оригинальное большое изображение кидается в uploads/

Итоговые ссылки формираются соответствующим образом, то есть:

...

Оставьте комментарий!

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)

Рубрики
  • Hовости
  • Изучаем Linux
  • Обзоры Linux ПО
    • Hужное/полезное
    • Аудио и видео ПО
    • Графика
    • Офисное ПО
    • Интернет ПО
    • Образовательные
    • Игры
    • Администрирование
    • Системные утилиты
    • Прочие
    • Shareware / Demo
  • Дистрибутивы
  • Дополнительные материалы
Последние комментарии
AbiWord
  • Святой_Мученик_Linux » Некорректно отображает картинки в майкросовтовски х файлах doc. Картинки позиционируются одна на другую, поверх текста. В...
  • vs » К сожалению, AbiWord давно протух и толку от него ровно 0. Даже больше вреда. Сейчас...
tarsnap
  • Анонимус » В тексте опечатка "для использования для использования"
DarGUI / KDar
  • WinGamer » Можно ли забекапить всю систему windows этим архиватором?
cfiles
  • Дмитрий » так эт самое, а как например переименовать папку?
Profanity
  • zon » проше научится свой клиент написать чем разобратся куда что клацать для отправки получения месаг.
  • vovans » Тут не нужно ничего "клацать". Достаточно пару раз на хоткеи посмотреть.
noteshrink
  • Аноним » Теперь есть плюсовая (не пайтон) версия: //github. com/ ImageProcessing - ElectronicPublications /noteshrink-c/ releases
Page dewarp
  • Аноним » Теперь есть плюсовая (не пайтон) версия: //github. com/ ImageProcessing - ElectronicPublications /pagedewarp/ releases
Strawberry Music Player
  • Rododendron » А как добавить радиостанции в плеер? Нигде найти не могу.
Форум
[18/11/2022 11:54:52]
vscode and c/c++
[31/08/2022 12:25:53]
Tor Browser
[26/08/2022 07:57:14]
Музыкальный калейдоскоп
[22/05/2022 15:45:40]
Стратегии RTS
[30/03/2022 09:05:20]
Заметки с синхронизацией
[01/03/2022 20:15:05]
Говорильня (дискуссионный клуб)
[13/02/2022 11:44:28]
[РЕШЕНО] права на запись в примонтированный образ диска (raw.img)
[07/02/2022 13:22:01]
Конвертировать текст набаранный в неправильной раскладке
[04/02/2022 20:35:22]
Редактор тегов
Облако меток
2D338 3D241 ALSA68 ASCII120 Android1 Arch Linux38 Audio416 Backup80 Benchmark78 Bluetooth2 C++969 CD48 Console1318 DJ-система17 DVD47 Debian28 DjVu22 Enlightenment19 FFmpeg191 FLTK29 FPS40 FREE155 FTP18 FVWM21 Fluxbox40 GIMP24 GNU26 GPS22 GTK1302 GUI801 Gambas11 Games686 Gentoo3 Gnome349 Gstreamer133 HDD122 HDR7 HTML62 Hex-редактор14 ICQ17 IP-сети25 IP-телефон22 IRC31 ISO39 IceWM22 ImageMagick56 JACK99 Jabber35 Java308 JavaScript115 KDE209 LAN29 LXDE37 LaTeX66 Live-CD70 Live-DVD55 Live-USB53 Lua61 MATE32 MEncoder31 MIDI91 MMORPG12 Mail42 Markdown53 Mono53 Mplayer75 MySQL2 OSS9 Open Source14 OpenGL301 Openbox89 P2P51 PDF133 PHP12 Pascal17 Perl102 Phonon27 PulseAudio17 Python759 QT894 RAW34 RPG101 RSS53 RTS42 Roguelike70 Ruby19 Rust15 SDL312 SVG39 Screencast32 Screenshot61 Script78 Slackware66 TOR17 TOX3 Tk39 Torrent67 Ubuntu69 VLC16 Vala64 Web629 WebKit72 WebUI34 WiFi47 Window Maker16 Wine8 XMPP35 Xfce70 Xine14 YouTube80 video4linux27 wxWidgets108 Автоматизация31 Администрирование335 Анонимная сеть47 Антивирус14 Апплет120 Аркада235 Архиватор11 Астрономия36 Аудио конвертер70 Аудио редактор50 Аудиоплеер184 Безопасность243 Бизнес-приложение4 Браузер87 Бродилка203 Бухгалтерия11 Веб-камера36 Видео148
© Zen Way, 2023. Работает на MaxSite CMS | Время: 0.1143 | SQL: 15 | Память: 8.74MB | Вход