import requests import json from urlparse import urljoin B2SHARE_API = 'https://trng-b2share.eudat.eu/' def access_token_file(): f = open(r'C:/Users/cjhak/Desktop/B2SHARE_Token_trng.txt', 'r') return f.read() def read_deposit_id(): f = open('deposit_id', 'r') return f.read() def list_records(): token = access_token_file().rstrip() url = urljoin(B2SHARE_API, 'api/records') payload = {'access_token': token} r = requests.get(url, params=payload, verify=False) print r print r.text def list_records_pagination(page_size, page_offset): token = access_token_file().rstrip() url = urljoin(B2SHARE_API, 'api/records') payload = {'page_size': page_size, 'page_offset': page_offset, 'access_token': token } r = requests.get(url, params=payload, verify=False) print r print r.text def list_specific_record(record_id): token = access_token_file().rstrip() exten = 'api/record/' + record_id url = urljoin(B2SHARE_API, exten) payload = {'access_token': token} r = requests.get(url, params=payload, verify=False) print r r = json.loads(r.text) print json.dumps(r, indent=4, separators=(',', ': ')) def create_deposition(): token = access_token_file().rstrip() url = urljoin(B2SHARE_API, '/api/depositions') payload = {'access_token': token} r = requests.post(url, params=payload, verify=False) print r print r.text res = r.json() deposit_id = res['deposit_id'] f = open('deposit_id' , 'wb') f.write(deposit_id) f.closed def add_file(file_path): token = access_token_file().rstrip() deposit_id = read_deposit_id().rstrip() files = {'file': open(file_path, 'rb')} path = '/api/deposition/' + deposit_id + '/files' url = urljoin(B2SHARE_API, path) payload = {'access_token': token} r = requests.post(url, files=files, params=payload, verify=False) print r print r.text def list_files(): token = access_token_file().rstrip() deposit_id = read_deposit_id().rstrip() path = '/api/deposition/' + deposit_id + '/files' url = urljoin(B2SHARE_API, path) payload = {'access_token': token} r = requests.get(url, params=payload, verify=False) print r.text def commit_deposition(): token = access_token_file().rstrip() deposit_id = read_deposit_id().rstrip() path = '/api/deposition/' + deposit_id + '/commit' url = urljoin(B2SHARE_API, path) payload = {'access_token': token} info = {"domain":"generic", "title":"Demo", "description":"A little demo ...", "open_access":"true", "creator":"Demo", "publication_date":"05-02-2016", "licence":"Creative Commons Attribution (CC-BY)", "keywords":"Demo" } headers = {'content-type': 'application/json'} r = requests.post(url, data=json.dumps(info), params=payload, verify=False, headers=headers) print r print r.text ''' STEP 1: Create a new deposition ''' #create_deposition() ''' STEP 2: Upload a new file into a deposition object ''' #add_file(r'C:/Users/cjhak/Desktop/DEMOTEST.txt') ''' STEP 3: List the files uploaded into a deposition object ''' #list_files() ''' STEP 4: Commit deposition ''' #commit_deposition() ''' List a specific record ''' list_specific_record('154') ''' List all the records ''' #list_records() #list_records_pagination(3, 10)