'https://skyportal.xyz', 'https://skynet.cloudloop.io', 'https://siacdn.com', 'https://siasky.net', 'https://germany.siasky.net', 'https://helsinki.siasky.net', 'https://us-west.siasky.net/', ] results = [] for portal in portals: start_time = time.time() opts = type('obj', (object, ), {'portal_url': portal, 'timeout': 20}) try: try: skylink = Skynet.upload_file('2MBfile.txt', opts) uploadtime = round(time.time() - start_time, 2) current_result = [uploadtime, portal] except TimeoutError as e: current_result = [opts.timeout, portal] except Exception as e: current_result = [999, portal] results.append(current_result) print('Benchmarking', str(len(results)) + '/' + str(len(portals)), 'portal. Current:', time_to_str(current_result[0]), current_result[1]) print('\nRESULTS:\n') results.sort(key=lambda x: x[0]) for elem in results:
def upload_f(path): skylink = Skynet.upload_file(path) return skylink
def create_gist(request): gist_id = uuid.uuid1().hex files = request.data.get('files') raw_metadata = request.data.get('metadata') repo_path = path.join(SIA_CACHE_DIR, gist_id) repo = Repo.init(repo_path) parent = raw_metadata.get('parent', None), parent_gist = None if parent: gist = Gist.objects.filter(sia_path=parent) if gist.exists(): parent_gist = gist.first() base_metadata = { 'visibility': raw_metadata.get('visibility', 'public'), 'parent': parent_gist, 'description': raw_metadata.get('description', ''), 'expiration': raw_metadata.get('expiration', 'never'), 'categories': raw_metadata.get('categories', []), 'user_address': raw_metadata.get('address', ''), 'uuid': gist_id } params = base_metadata.copy() params['sia_path'] = f'{gist_id}.zip' params['skynet_url'] = '' new_gist = Gist.objects.create(**params) metadata = base_metadata.copy() metadata['sia_package_path'] = f'{gist_id}.zip' metadata['skynet_package_url'] = '' metadata['files'] = { file['name']: { 'syntax': file['syntax'], 'skynet_url': '' } for file in files } metadata['created'] = timezone.now().isoformat() # Write and commit files [filepaths, metadata_path] = write_files(gist_id, files, metadata) paths = [ path.join(SIA_CACHE_DIR, filepath['path']) for filepath in filepaths ] metadata_abs_path = path.join(SIA_CACHE_DIR, metadata_path) repo.index.add([metadata_abs_path] + paths) repo.index.commit('Initial revision') # Set manifest new_gist.skynet_manifest_url = Skynet.upload_file( metadata_abs_path, custom_filename=f'{gist_id}.json') new_gist.sia_manifest_path = metadata_path new_gist.save() # Upload files for filepath in filepaths: print(f'======= {filepath}') filename = filepath['path'].split(f'{gist_id}/')[1] print(f'======= {filename}') file = File.objects.create(sia_path=filepath['path'], skynet_url='', file_name=filename, gist=new_gist, syntax=filepath['syntax']) upload_file(gist_id=new_gist.id, file_id=file.id, filename=filename) upload_zip.delay(gist_id=new_gist.id, filename=f'{gist_id}.zip') return Response({ 'id': gist_id, 'url': f'{HOST_URL}/gists/{gist_id}', 'gist': new_gist.get_default_dict() })