Bleskový upload súborov na FTP a automatické kopírovanie HTTP adresy do clipboardu (Automator a Transmit)

Článok bol prvýkrát uverejnený 17. januára 2007.

Často potrebujem ukladať súbory na hosting a bleskovo napísať ich HTTP adresu do e-mailu, HTML kódu, komentára alebo chat okna. Konkrétne Adium a iné IM messengery si s transferom neporadia vždy, v závislosti od klienta užívateľa na druhej strane. Okrem toho, v prílohách mailov nemôžu byť veľké archívy. Ak uploadujete súbory niekoľkokrát denne, môže byť neustále spúšťanie FTP klienta, prehľadávanie disku, upload a následné ručné písanie adresy dosť nepohodlné. Dnes už existuje zopár utilít, ktoré tento postup automatizujú, nenašiel som však takú, ktorá by mi plne vyhovovala a poskytovala potrebné možnosti nastavenia s vlastným hostingom. V tomto postupe využijeme jednoduchý postup cez Automator alebo zložitejší s klientom Transmit.Spoločnosť Panic, vývojári FTP klienta Transmit poskytujú k programu zdarma aj Dashboard widget, ktorému stačí nakonfigurovať prístupové údaje k FTP serveru a pretiahnutím súborov na tento widget sa vykoná následujúca plne automatizovaná ak­cia:

  1. Natiahnete súbor na widget
  2. Spustí sa klient Transmit
  3. Uploadnú sa súbory (vidíte celý priebeh, čas, prenos, log)
  4. Klient sa zavrie

Chýba už len automatické vkladanie adresy do clipboardu pre okamžité použitie. Snažil som sa kontaktovať spoločnosť Panic, ale nedostal som žiadnu odpoveď na otázku, či by mohli túto funkciu do widgetu naprogramovať.

Sú 2 možnosti:

  1. Používať Automator akciu „Upload to FTP“, s kopírovaním do  clipboardu
  2. Upraviť si Transmit widget (widgety sú písané v JavaScripte)

1. Automator – Upload to FTP

V prvom prípade si môžete stiahnuť Upload to FTP na AutomatorWorld a vytvoriť celú akciu podľa nasledujúceho príkladu:

Upload to FTP Automator akcia

Vyplňte správne údaje a uložte akciu ako Finder plugin. Odteraz keď kliknete pravým tlačidlom myši na súbor, v položke Automator budete mať k dispozícii túto akciu. Súbor sa uploadne a adresa skopíruje do schránky, za podmienky, že ste vytvorili akciu správne (Get Specified Finder Items, správne nastavený Upload to FTP, Copy to clipboard). Môžete označiť aj viac súborov a uploadnuť ich naraz. Adresy sa korektne uložia do schránky, každá v novom riadku.

Base URL označuje HTTP adresu/cestu kde sa súbory nachádzajú. Za ňu sa vloží meno súboru. Výsledok by bol v tomto prípade:

http://peter.xenon.sk/storage/subor.zip

Nevýhody: Nevidíte priebeh uploadu v % (len informáciu v menu, že prebieha akcia), nevidíte zostávajúci čas, a nemôžete uploadovať adresáre.

2. Úprava Transmit widgetu

Druhá možnosť je spomínaná úprava Transmit Widgetu. Postup vyzerá strašidelne, ale je to len pár jednoduchých krokov.

Postup:

  • Textovým editorom otvorte súbor  Users/menouží­vateľa/Library/Wid­gets/Transmit­.wdgt/Info.plist
  • Vložte do tohto súboru nasledujúci kód, ak sa tam ešte  nenachádza:
<key>AllowSystem</key> <true/>
  • Otvorte súbor  /Users/menouží­vateľa/Library/Wid­gets/Transmit­.wdgt/Transmit­.js
  • Vyľadajte nasledujúci kód, celý ho označte:
        // Do the upload!                  if (window.widget && serverinput.value) {                         resultlast = "";                         doUpload(server, userinput.value, passinput.value, pathinput.value, protocolinput.value, port, files_array);                 }          }  }
  • Nahraďte (prepíšte) ho nasledujúcim kódom:
// Do the upload!  if (window.widget && serverinput.value) {         resultlast = "";          doUpload(server, userinput.value, passinput.value, pathinput.value, protocolinput.value, port, files_array);          // Copy-to-clipboard addition by Henrik Nyh <http://henrik.nyh.se>         // Copies URLs to clipboard, each on its own line         //   - Info.plist needs AllowSystem to be "true"         //   - Transmit URL encoded text as UTF-8 = non-ASCII characters break         //   - Copies before files are transferred (move to uploadFinished() if desired)          var section = pathinput.value.split("/")[1];  // Path "henrik/foo" becomes "foo"         var url = "http://adresa/cesta/";          for (var i = 0, j = files_array.length; i < j; i++) {                 files_array[i] = files_array[i].replace(/.*\//, '');  // Isolate filename                 files_array[i] = url + files_array[i];  // Tack onto URL                 files_array[i] = files_array[i].replace("'", "%27");  // URL encode single quotes         }         var copy_me = files_array.sort().join("\n");          widget.system('echo -en "' + copy_me + '" | pbcopy', null);          // Copy-to-clipboard addition ends  }}}
  • Namiesto http://adresa/cesta/ si doplňte  vlastnú adresu, v mojom príklade by to bolo rovnako ako v Automatore:
"http://peter.xenon.sk/storage/"

Nezabudnite lomítko na konci a adresu ponechajte v úvodzovkách.

Autorom tohto skriptu je švédsky blogger Henrik Nyh. Nedostatok je v tomto prípade nemožnosť vytvoriť viac widgetov Transmitu s odlišnými servermi a odlišným nastavením.

K dispozícii sú ešte podobné utility ako napr. Captain FTP Widget, Cyberduck Upload Widget, DropSend. Ani tieto však nekopíruju adresy do clipboardu. Dragster je zaujímavý a dokáže to, no je shareware a je nepravedpodobné, že si k Transmitu budete kupovať kvôli kopírovaniu adries do clipboardu aj tento program.

Rýchlosť a praktickosť uploadov týmto spôsobom oceníte, aj keď FTP využívate len zriedka…

komentárov
  1. ten widget je vyborna vec, pouzivam ho odtedy co mam mac.
    ale prijal by som kebyze to po dokonceni uploadu to samo zavre transmit.
    neviete ci sa to da nastavit nejako ?

  2. po ediacii kodu widgetu sa mi dany widget na dashboard takpovediac zamrzne, je tam iba ikonka zemegule pod autom a uz ho nemozem ani nastavit a nefunguje. Urobil som vsetko presne podla navodu. Vdaka za pomoc

  3. Martin: Pridaj na úplny koniec po poslednej zátvorke ešte dalšie 2. Prepísaný kód teda nebude končiť “// Copy-to-clipboard addition ends
     }” ale “// Copy-to-clipboard addition ends }}}”.

    Resp. prejdi postup ešte raz, aktualizoval som ho.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená.



Články, ktoré by sa vám mohli páčiť
pokračovanie článku

Aká bude téma nového Apple eventu?

iPone, Apple Watch, iPad… To je len časť noviniek, ktoré nás môžu už budúci utorok čakať. Ktoré z nich majú väčšiu šancu stať sa súčasťou prezentácie?
pokračovanie článku

Apple vydá nové verzie svojich OS už dnes!

Apple v rámci svojho včerajšieho eventu, na ktorom predstavil nové Apple Watch Series 6, Apple Watch SE, iPad 8 či iPad…