RomanZ

Administrators
  • Posts

    3,588
  • Joined

  • Last visited

Everything posted by RomanZ

  1. @frater We are aware of the issue - will fix eventually. For now please use workaround suggested by @GreatMarko
  2. @Jaman42, I suppose you want to prevent users you shared folder with to share it with someone else. As @piotrnik says - it is impossible. Once you shared the folder and you approve at least one user - he can share it further. The only limitation you can apply is to share RO access, so the user you shared with will only be able to share RO.
  3. @afarensis wget names the file downloaded according to url. Try extracting it with "tar -zxvf", should work fine.
  4. Hi Walter, Do I understand correctly that sync runs on some linux box, you try to connect to its WebUI from Mac (Safari browser) and it claims that it can't connect to the server? If this is correct, then it is different issue, not a blank UI. Also, Do you mean that sync process is no longer running, or the fact that data does not synchronize even when Sync runs on both your Linux box and Mac?
  5. @JB09 I'm checking it out. Please watch the thread you linked to.
  6. @all, Thanks for reporting. I'll check what can be done here.
  7. @ICE Can I get the core dump of your Sync, please?
  8. @traycerb Please follow support instructions in order to resolve issue / find the root cause. @TiZ I understand that Sync is far from ideal, though team works hard to make it more reliable and stable. Let me know if you are still willing to help us to debug your issues.
  9. @happy.cze Thanks, we'll take a look at it.
  10. The only workaround available now is to run Sync with config file, while config should contain port value. We are working on fix for the issue.
  11. @sciurius That's correct. The changed file marked as invalidated on RO peer and RO will never take it unless you check "Overwrite" preference.
  12. @agitato816 There are several reasons which can force showing different amount of files: .SyncIgnore. Being different on different computers it might cause different files to be calculated Files / folders inaccessible for indexing. Usually - locked by other apps Dynamic state Sync is not complete yet. Some files are yet to be transferred (and might get stuck by some reason).I suggest checking sync ignore and looking into "Devices" tab - you can click the "i" button to see which files are still in the queue for syncing. Also, how was the folder synced? Did you pre-copy files from one peer to another or merged folders (2 peers has 2 set of files which are merged by Sync) or it was clean Sync from one peer to another empty folder on another peer?
  13. @Plan 55-A Note, that sync.dat contains a bunch of non-printable characters (well, it is a binary file!) so you'd better use hex editor or text editor which does not change non-printable chars to anything else (like, spaces).
  14. @all, If you are interested in using BitTorrent Sync for Commercial purposes, please contact our licensing department
  15. It was designed to work out of the box, though some changes in 1.4 broke it. The error "105" means "folder not empty" and simply need to be overridden with "force=1" parameter. Please see below the adjusted script - should work fine with 1.4. I also adjusted API manual article to reflect ability to "force" folder creation. import httplibimport urllibimport jsonimport osimport subprocessimport base64import shutilimport timeimport platformAPI_KEY = 'XXX' # INSERT YOUR API KEY HERE!btsyncbin_mac = 'BitTorrent Sync.app/Contents/MacOS/BitTorrent Sync'btsyncbin_win = 'BTSync.exe'btsyncbin_linux = 'btsync'config_param_posix = '--config'config_param_win = '/config'class SyncInstance: def __init__(self, configName, storagePath, port): self.port = port self.configPath = os.path.join(os.getcwd(), configName) self.storagePath = os.path.join(os.getcwd(), storagePath) shutil.rmtree(self.storagePath, True) os.mkdir(self.storagePath) config = {} config['storage_path'] = self.storagePath config['use_gui'] = False webuiConfig = {} webuiConfig['login'] = 'apitest' webuiConfig['password'] = 'apipass' webuiConfig['listen'] = '127.0.0.1:%d' % port webuiConfig['api_key'] = API_KEY config['webui'] = webuiConfig configFile = open(self.configPath, 'w') json.dump(config, configFile) configFile.close() def launch(self): if platform.system() == 'Windows': btsyncbin = btsyncbin_win configParam = config_param_win elif platform.system() == 'Darwin': btsyncbin = btsyncbin_mac configParam = config_param_posix else: btsyncbin = btsyncbin_linux configParam = config_param_posix binaryPath = os.path.join(os.getcwd(), btsyncbin) subprocess.Popen([binaryPath, configParam, self.configPath]) def request(self, request): try: conn = httplib.HTTPConnection('localhost:%d' % self.port) headers = {'Authorization': 'Basic ' + base64.b64encode('apitest:apipass')} params = urllib.urlencode(request) conn.request('GET', '/api?' + params, '', headers) resp = conn.getresponse() if resp.status == 200: return json.load(resp) else: return None except: return Nonedef writeFile(folder, filename, count): f = open(os.path.join(folder, filename), 'w+') for i in range(1, count): f.write('%d' % i ) f.close()def main(): if API_KEY == 'XXX': print 'In order to run this sample code please insert a valid API key!' return 1 instance1 = SyncInstance('sync1.conf', 'storagepath1', 8888) instance2 = SyncInstance('sync2.conf', 'storagepath2', 8889) instance1.launch() instance2.launch() print 'Waiting for the BitTorrent Sync instances to start...' while True: version1 = instance1.request({'method' : 'get_version'}) version2 = instance2.request({'method' : 'get_version'}) if version1 is not None and version2 is not None: break time.sleep(0.2) print 'Generating secrets on the first instance...' secret = instance1.request({'method' : 'get_secrets', 'type' : 'encryption'}) print secret syncFolderPath1 = os.path.join(os.getcwd(), 'path1') shutil.rmtree(syncFolderPath1, True) os.mkdir(syncFolderPath1) writeFile(syncFolderPath1, 'file1', 300) writeFile(syncFolderPath1, 'file2', 500) print 'Adding a folder on the first instance via read-write secret...' addFolderRes = instance1.request({'method' : 'add_folder', 'dir' : syncFolderPath1, 'secret' : secret['read_write'], 'force' : '1'}) if 'error' in addFolderRes and addFolderRes['error'] != 0: print 'Error %d while adding folder' % addFolderRes['error'] folders = instance1.request({'method' : 'get_folders', 'secret' : secret['read_write']}) print folders print 'Waiting while the files are being indexed...' while True: folders = instance1.request({'method' : 'get_folders', 'secret' : secret['read_write']}) if folders and folders[0]['indexing'] == 0 and folders[0]['files'] == 2: break time.sleep(0.2) print folders print 'Getting a file list on the first instance...' files = instance1.request({'method' : 'get_files', 'secret' : secret['read_write']}) print files syncFolderPath2 = os.path.join(os.getcwd(), 'path2') shutil.rmtree(syncFolderPath2, True) os.mkdir(syncFolderPath2) print 'Adding a folder to the second instance via read-only secret...' addFolderRes = instance2.request({'method' : 'add_folder', 'dir' : syncFolderPath2, 'secret' : secret['read_only'], 'selective_sync' : 1, 'force' : '1'}) if 'error' in addFolderRes and addFolderRes['error'] != 0: print 'Error %d while adding folder' % addFolderRes['error'] print 'Receiving the file list on the second instance...' while True: files = instance2.request({'method' : 'get_files', 'secret' : secret['read_only']}) if files: break time.sleep(0.2) print 'Selecting "file2" for download on the second instance...' fileRes = instance2.request({'method' : 'set_file_prefs', 'secret' : secret['read_only'], 'path' : 'file2', 'download' : 1}) print fileRes print 'Downloading "file2"...' while True: fileRes = instance2.request({'method' : 'get_files', 'secret' : secret['read_only'], 'path' : 'file2'}) if fileRes and fileRes[0]['have_pieces'] == fileRes[0]['total_pieces']: break time.sleep(0.2) print fileRes print 'Download finished' print 'Shutting down the BitTorrent Sync instances...' instance1.request({'method' : 'shutdown'}) instance2.request({'method' : 'shutdown'})main()
  16. Under "automatic" I meant that it takes care of the sync process and its service files. The error reporting and issues resolution is not a strong side of Sync - though we are working to make it better.
  17. @turnerg As GreatMarko said, plus set "sync_trash_ttl" to "0" to make sure files on server never deleted from .sync\Archive (they get moved there when deleted on your roaming peers).
  18. @bherila New UI is targeted to be more simple and understandable to everyone - including people without deep computer knowledge.
  19. @MisterRider Before Sync get stuck into some folder it actually cannot access to (usually - System Volume Information). Though, starting from version 1.3 this was fixed and indexer is no longer blocked with folders it can't access to. Do I understand correctly that in your case it does not sync even a single file after indexing?
  20. @markymark77 Let me split your scenario in 2 (difference in bold): 1. Peer A is offline, Peer B deletes file, Peer C follows B. Nothing is changed on peer A. When A comes online, file is restored on B and C. 2. Peer A is offline, Peer B deletes file, Peer C follows B. Peer A changes the deleted file while Sync is off (actual change time does not matter). When A comes online, file is restored on B and C. Scenairo #1 is a bug. Scenario #2 is actually by design. If you've got #1 (i.e. the peer which was offline did not change anything in affected file (not even mtime) - could you please collect debug logs from all 3 peers and drop me for analysis?
  21. @Kedeb Malsi 1) They are not sorted now. Thanks for proposal - we'll consider it for future releases. 2) I confirm issue with ampersand character - it looks like a bug, we'll take care of it.
  22. @heehee62 1. Background sync for iOS is not supported at the moment. We plan to implement it in future. 2. Not supported. Only camera roll is backed up without any division to folders / albums.
  23. Justin, Yes, it is possible - but only with 3rd party audio players. iOS does not allow any non-apple applications to store data in Library. Only iTunes can do it. So - you can "Open in..." your audio file and transfer it to some audio player.
  24. @cactustak Screenshot, please? @2048bit Thanks, I'll try to reproduce it. @cactustak Could you please send me a screenshot? @maddhin Let's try to look into debug logs. Could you please connect a pair of debug logs? 2 computers would be enough, they should contains the folder they can't sync. Preferably in LAN - it's easier. When sending logs - please mention this forum topic.
  25. @ancylostomiasis Got only log from Android - while need from 2 devices (and covering the same timespan). @chungyan5 Logs were not attached. Could you please pack / resend? @happy.cze Need logs from 2 peers. @colinabroad Sorry, I confused 1.3 and 1.4 versions. Your ignore list is okay for 1.3.109. 1.4 has "~*" also in it.