Copy.com in Linux, cloud storage voor nerds

Door Redsandro op vrijdag 24 januari 2014 18:28 - Reacties (14)
Categorie: Software, Views: 6.303

Copy.com cloud in Linux
Copy.com is een relatief nieuwe cloud service van de beveiligingsfirma Barracuda Networks, en derhalve volgens mij wel netjes.

Om marktaandeel van bestaande en populaire clouds zoals Dropbox af te snoepen hebben ze tijdelijk een actie waarbij je 5GB extra ruimte per referrer krijgt, boven op de 15GB die je standaard krijgt.

Dat is 10 keer zoveel als Dropbox per referrer biedt, en na één referrer al meer dan het gratis maximum van Dropbox. Leuk om even een gratis cloud op te bouwen.

Op GoT is het natuurlijk niet de bedoeling om met referral links te gaan strooien, maar hier op mijn Tweakblog wil ik je natuurlijk even de kans geven om via dit linkje een account aan te maken met 20GB. (Je kan natuurlijk ook zonder referral een 'schoon' account aanmaken met 15GB.)
Linux support
Als een van de weinige cloud-concurenten heeft Copy ook gewoon ondersteuning voor Linux. In de GUI en in de terminal. Dat laatste is erg chill. Zo kan je de boel op je eigen manier automatiseren.

Ik heb bijvoorbeeld een Upload to Copy Cloud context menu item gemaakt voor Nemo. Ik zal voor jullie entertainment even kort uitleggen hoe, en dan kan je dat zelf wel omzetten voor welke file-manager of ander truukje je dan ook wilt gebruiken.

http://tweakers.net/ext/f/PxEmX3ZU103gS4L7p0hwhIha/full.png


1) Categorie duh: Ten eerste heb je natuurlijk je home encrypted.

Zodat wachtwoorden in je keyring niet leesbaar zijn voor derden.

2) Voeg je Copy wachtwoord toe aan je keyring.

In sommige distro's heet het Seahorse, in anderen heet het Passwords and Keys. Voeg daar een nieuw password/secret toe.

http://tweakers.net/ext/f/IVa73kAIdysBSt2vHpuzFeMV/full.png

Voer een unieke beschrijving en je Copy wachtwoord in, en sla het op in je login keyring. Deze is standaard unlocked na het inloggen.

3) Maak een wrapper-scriptje die CopyCmd (die je van Copy kan downloaden) uitvoert met de juiste credentials. Zet dit op een global uitvoerbare locatie en +x het. Standaard /usr/local/bin, maar de betere nerd heeft waarschijnlijk zijn eigen pad in $PATH staan.

Bij mij is het bijvoorbeeld /home/redsandro/bin/rs-copycmd.py
Maar bij mij staat ~/bin dan ook standaard in $PATH en dat is niet standaard.


Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python
# Redsandro 2014-01-24 CopyCmd password wrapper

import os, sys
import gnomekeyring as gk
import subprocess


# Arguments
keyname = 'Cloud/CopyCmd 2014-01-24'
user    = 'redsandro@something.com'
binary  = '/opt/copy/x86_64/CopyCmd'
keyring = 'login'


def main():

    # Find the key
    keyFound    = False
    try:
        keyItems    = gk.list_item_ids_sync(keyring)
    except gk.NoSuchKeyringError:
        print 'No such keyring:', keyring
        sys.exit(500)

    for keyItem in keyItems:
        key = gk.item_get_info_sync(keyring, keyItem)
        if  key.get_display_name() == keyname:
            keyFound = True
            copyCmd(key)
            break
    if not keyFound:
        print 'Could not find key for', keyname
        sys.exit(500)


def copyCmd(key):

    args = sys.argv[1:]
    cmd = [binary, 'Cloud', '-password=%s' % key.get_secret(), '-username=%s' % user] + args

    process = subprocess.Popen(cmd)
    process.wait()

    print
    input("DONE! :D (Press Enter to close.)")


if __name__ == "__main__":
    print 'Cloud helper thingie - Redsandro'
    main()



Natuurlijk even je login-email-adres en de unieke omschrijving die je in je keyring hebt gezet (en de locatie van je binary) hier aanpassen:

Python:
1
2
3
4
5
# Arguments
keyname = 'Cloud/CopyCmd 2014-01-24'
user    = 'redsandro@something.com'
binary  = '/opt/copy/x86_64/CopyCmd'
keyring = 'login'



4) Nemo context-menu aanpassen

~/.local/share/nemo/actions/rs-copy-upload.nemo_action


code:
1
2
3
4
5
6
7
[Nemo Action]
Name=Upload to Copy Cloud
Comment=Uload to Copy Cloud using personal key from SeaHorse
Exec=gnome-terminal -x sh -c "/home/redsandro/bin/rs-copycmd.py put -r '%F' '/upload/'"
Icon-Name=filesave
Selection=Any
Extensions=any;



Uiteraard even het pad veranderen. En eventueel Icon-Name, filesave is een beetje lomp maar ik kon zo snel niets beters vinden in mijn theme.

5) Even het mapje upload/ aanmaken op je Copy cloud voor gebruik

Via de website ofzo. Anders krijg je een foutmelding.

6) Mapje verder negeren (optioneel)

Als je de grafische client ook gebruikt is het een goed idee om te zorgen dat het mapje upload/ niet meteen weer naar je computer wordt gesynct. Het komt tenslotte net van je computer af. (Tenzij je dat juist wel wilt natuurlijk).

Bij Dropbox zou je dit Selective Sync noemen. Bij Copy heet dit gewoon Manage My Files.

http://tweakers.net/ext/f/5EM1JdNB4sLyjzfwy2OzQTSI/full.png

Klaar! Het werkt meteen in Nemo. Geen restart nodig.


Ik upload vaak footage wat ik later op mijn werk (eventueel) wil gaan gebruiken, maar je kan dit natuurlijk inzetten zoals je wilt.
Deel je vaak bestanden? Je kan via CopyCmd ook een share-link aanmaken. Zet deze vervolgens automatisch in je clipboard, en je hebt een automatisch file-to-copy-share-url context-menu item. :D

Veel succes met het sparen van Copy cloud storage!

http://tweakers.net/ext/f/fLAWWVOItcOnP4amq93Ef05t/full.png


FAQ
Waarom sys.exit(500)?

Ik heb geen verstand van exit codes behalve dat 0 goed is. Daarom gebruik ik verder gewoon HTML HTTP status codes en 500 (Internal Server Error) betekent dat het niet goed zit. Je scripts zijn dus altijd chainable zolang een goed einde maar 0 is, en een fout einde !0. :P
edit:
Hoewel ik hier nooit problemen mee heb gehad, en ze prima kan opvangen in een chain, wijst iThinkSo ons erop dat code's boven de 127 problemen op kunnen leveren. :)

Volgende: Europa klopt niet. Ook het energiebeleid niet. 05-'14 Europa klopt niet. Ook het energiebeleid niet.
Volgende: Adobe in je kont, is dat wel gezond? (Alternatieven) 05-'13 Adobe in je kont, is dat wel gezond? (Alternatieven)

Reacties


Door Tweakers user iThinkSo, vrijdag 24 januari 2014 19:25

Waarom sys.exit(500)?

Ik heb geen verstand van exit codes behalve dat 0 goed is. Daarom gebruik ik verder gewoon HTML status codes en 500 (Internal Server Error) betekent dat het niet goed zit. Je scripts zijn dus altijd chainable zolang een goed einde maar 0 is, en een fout einde !0. :P
Sommige terminals vinden het niet zo fijn als je gaat rondstrooien met codes hoger dan 127, meen ik me te herrinneren. Het is denk ik handiger om gewoon zoiets te doen:
string = Could not find key for' + keyname
raise Exception(string)

Door Tweakers user hilgo, vrijdag 24 januari 2014 19:53

Thx, 20 gig is binnen :)

Door Tweakers user Joukea, vrijdag 24 januari 2014 23:09

Thanks! Je hebt er weer 5 GB bij ;)

Door Tweakers user mhaket, zaterdag 25 januari 2014 12:04

En nog een keer 5 GB erbij


Door Tweakers user Xenvius, zaterdag 25 januari 2014 16:10

en nog eens 5GB :)

Door Tweakers user mg794613, zaterdag 25 januari 2014 20:00

Dit "sharen" waar ze over praten, is dit enkel tussen users of kan ik net zoals bij dropbox een file public maken. En wat zijn de speeds?

Door Tweakers user Redsandro, zaterdag 25 januari 2014 23:18

@mg794613: Je kan sharen met andere users zoals dat ook bij dropbox kan (alleen bij Copy kost het minder ruimte pp), en je kan ook een share-url maken en die publiekelijk delen (ook zoals bij Dropbox geloof ik).

De speeds kan ik niet zoveel over zeggen, mijn lijn is te langzaam met 200kB/s en ben nog steeds aan het uploaden. :P Die paar keer dat ik ging downloaden heb ik niet opgelet omdat ik ondertussen aan het werk was. Misschien heeft iemand anders al een oordeel?

Het is nog erg nieuw, ze zijn in ieder geval nog volop de software aan het verbeteren. Voor Linux kan je in plaats van de stabiele versie ook een betaversie downloaden met wat meer features. Ik vermoed dat eea nog beter gaat worden naarmate de userbase groeit.

Hoewel ik me afvraag of er bij deze grote bonussen nog betalende klanten gaan komen. :P

@iedereen: Bedankt voor de gigabytes mensen. :)

Door Tweakers user Diumelia, zondag 26 januari 2014 19:15

Je hebt er 5GB bij!

Moest iemand mij gelukkig willen maken met een extra 5GB? ;) Klikje!

[Reactie gewijzigd op zondag 26 januari 2014 19:17]


Door Tweakers user Jeroen, zondag 26 januari 2014 20:35

Leuke post! Het zijn trouwens status codes van HTTP, niet HTML.

Door Tweakers user TjerkBennema, maandag 27 januari 2014 00:42

Je mag mij ook altijd gelukkig maken met wat extra ruimte: https://copy.com?r=FtdZTJ

Werkt ook met plex :D

Door Tweakers user IggyM, maandag 27 januari 2014 10:37

5gb erbij voor ons beide. Meer is uiteraard altijd welkom :) https://copy.com?r=eTLzxt

Door Tweakers user Dacuuu, zaterdag 15 februari 2014 09:12

Wie maakt zichzelf en mij gelukkig met 5Gb extra? https://copy.com/?r=cuBLN1

Door Tweakers user Fatmike, woensdag 2 april 2014 22:01

Ik heb zonet ook een account aangemaakt, danku voor de 5GB :)

Reageren is niet meer mogelijk