'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:
Example #2
0
def upload_f(path):
	skylink = Skynet.upload_file(path)
	return skylink
Example #3
0
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()
    })