forked from D-Net/dnet-hadoop
This commit is contained in:
parent
65bf312360
commit
fb80353018
|
@ -3,26 +3,20 @@ package eu.dnetlib.dhp.oa.graph.dump;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
import org.apache.http.client.HttpClient;
|
import org.apache.http.client.HttpClient;
|
||||||
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpPost;
|
||||||
import org.apache.http.client.methods.HttpPut;
|
import org.apache.http.client.methods.HttpPut;
|
||||||
import org.apache.http.client.methods.HttpUriRequest;
|
|
||||||
import org.apache.http.client.methods.RequestBuilder;
|
|
||||||
import org.apache.http.entity.StringEntity;
|
import org.apache.http.entity.StringEntity;
|
||||||
import org.apache.http.entity.mime.HttpMultipartMode;
|
|
||||||
import org.apache.http.entity.mime.MultipartEntityBuilder;
|
import org.apache.http.entity.mime.MultipartEntityBuilder;
|
||||||
import org.apache.http.impl.client.DefaultHttpClient;
|
import org.apache.http.impl.client.DefaultHttpClient;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
|
|
||||||
// import com.cloudera.org.apache.http.HttpResponse;
|
|
||||||
// import com.cloudera.org.apache.http.client.HttpClient;
|
|
||||||
// import com.cloudera.org.apache.http.client.methods.HttpPost;
|
|
||||||
// import com.cloudera.org.apache.http.entity.StringEntity;
|
|
||||||
// import com.cloudera.org.apache.http.impl.client.DefaultHttpClient;
|
|
||||||
// import com.cloudera.org.apache.http.util.EntityUtils;
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.oa.graph.dump.zenodo.ZenodoModel;
|
import eu.dnetlib.dhp.oa.graph.dump.zenodo.ZenodoModel;
|
||||||
|
@ -31,7 +25,7 @@ public class APIClient implements Serializable {
|
||||||
|
|
||||||
String urlString;
|
String urlString;
|
||||||
String bucket;
|
String bucket;
|
||||||
HttpClient client;
|
|
||||||
String deposition_id;
|
String deposition_id;
|
||||||
final String ACCESS_TOKEN = "5ImUj0VC1ICg4ifK5dc3AGzJhcfAB4osxrFlsr8WxHXxjaYgCE0hY8HZcDoe";
|
final String ACCESS_TOKEN = "5ImUj0VC1ICg4ifK5dc3AGzJhcfAB4osxrFlsr8WxHXxjaYgCE0hY8HZcDoe";
|
||||||
|
|
||||||
|
@ -61,7 +55,7 @@ public class APIClient implements Serializable {
|
||||||
|
|
||||||
String json = "{}";
|
String json = "{}";
|
||||||
|
|
||||||
client = new DefaultHttpClient();
|
HttpClient client = new DefaultHttpClient();
|
||||||
|
|
||||||
HttpPost post = new HttpPost(urlString);
|
HttpPost post = new HttpPost(urlString);
|
||||||
|
|
||||||
|
@ -80,22 +74,51 @@ public class APIClient implements Serializable {
|
||||||
|
|
||||||
return response.getStatusLine().getStatusCode();
|
return response.getStatusLine().getStatusCode();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void upload(String filePath, String file_name) throws IOException {
|
public void upload(String filePath, String file_name) throws IOException {
|
||||||
|
HttpClient client = new DefaultHttpClient();
|
||||||
File file = new File(filePath);
|
File file = new File(filePath);
|
||||||
HttpPut post = new HttpPut(bucket + "/" + file_name);
|
HttpPut put = new HttpPut(bucket + "/" + file_name);
|
||||||
post.setHeader("Authorization", "Bearer " + ACCESS_TOKEN);
|
put.setHeader("Authorization", "Bearer " + ACCESS_TOKEN);
|
||||||
post.addHeader("Content-Type", "application/zip");
|
put.addHeader("Content-Type", "application/zip");
|
||||||
HttpEntity data = MultipartEntityBuilder.create().addBinaryBody(file_name, file).build();
|
HttpEntity data = MultipartEntityBuilder.create().addBinaryBody(file_name, file).build();
|
||||||
post.setEntity(data);
|
put.setEntity(data);
|
||||||
|
|
||||||
// HttpUriRequest request = RequestBuilder.post(bucket + "/" + file_name
|
HttpResponse response = client.execute(put);
|
||||||
// +"?access_token=5ImUj0VC1ICg4ifK5dc3AGzJhcfAB4osxrFlsr8WxHXxjaYgCE0hY8HZcDoe").setEntity(data).build();
|
|
||||||
|
String json = EntityUtils.toString(response.getEntity());
|
||||||
|
|
||||||
|
ZenodoModel newSubmission = new Gson().fromJson(json, ZenodoModel.class);
|
||||||
|
|
||||||
HttpResponse response = client.execute(post);
|
|
||||||
System.out.println(response.getStatusLine().getStatusCode());
|
System.out.println(response.getStatusLine().getStatusCode());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendMretadata(String metadata) throws IOException {
|
||||||
|
|
||||||
|
HttpClient client = new DefaultHttpClient();
|
||||||
|
HttpPut post = new HttpPut(urlString + "/" + deposition_id);
|
||||||
|
post.setHeader("Authorization", "Bearer " + ACCESS_TOKEN);
|
||||||
|
post.addHeader("Content-Type", "application/json");
|
||||||
|
StringEntity entity = new StringEntity(metadata, StandardCharsets.UTF_8);
|
||||||
|
post.setEntity(entity);
|
||||||
|
|
||||||
|
HttpResponse response = client.execute(post);
|
||||||
|
System.out.println(response.getStatusLine().getStatusCode());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publish() throws IOException {
|
||||||
|
HttpClient client = new DefaultHttpClient();
|
||||||
|
HttpPost post = new HttpPost(urlString +"/"+ deposition_id +"/actions/publish") ;
|
||||||
|
post.setHeader("Authorization", "Bearer " + ACCESS_TOKEN);
|
||||||
|
|
||||||
|
HttpResponse response = client.execute(post);
|
||||||
|
|
||||||
|
System.out.println(response.getStatusLine().getStatusCode());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,12 @@
|
||||||
package eu.dnetlib.dhp.oa.graph.dump;
|
package eu.dnetlib.dhp.oa.graph.dump;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import eu.dnetlib.dhp.oa.graph.dump.zenodo.Creator;
|
||||||
|
import eu.dnetlib.dhp.oa.graph.dump.zenodo.Metadata;
|
||||||
|
import eu.dnetlib.dhp.oa.graph.dump.zenodo.ZenodoModel;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -17,21 +22,57 @@ public class ZenodoUploadTest {
|
||||||
|
|
||||||
Assertions.assertEquals(201, s.connect());
|
Assertions.assertEquals(201, s.connect());
|
||||||
|
|
||||||
final String sourcePath = getClass()
|
s.upload(getClass()
|
||||||
.getResource("/eu/dnetlib/dhp/oa/graph/dump/zenodo/ni")
|
.getResource("/eu/dnetlib/dhp/oa/graph/dump/zenodo/ni")
|
||||||
.getPath();
|
.getPath(), "Neuroinformatics");
|
||||||
|
|
||||||
s.upload(sourcePath, "Neuroinformatics");
|
s.upload(getClass()
|
||||||
|
.getResource("/eu/dnetlib/dhp/oa/graph/dump/zenodo/dh-ch")
|
||||||
|
.getPath(), "DigitalHumanitiesandCulturalHeritage");
|
||||||
|
|
||||||
|
s.upload(getClass()
|
||||||
|
.getResource("/eu/dnetlib/dhp/oa/graph/dump/zenodo/egi")
|
||||||
|
.getPath(), "EGI");
|
||||||
|
|
||||||
|
s.upload(getClass()
|
||||||
|
.getResource("/eu/dnetlib/dhp/oa/graph/dump/zenodo/science-innovation-policy")
|
||||||
|
.getPath(), "ScienceandInnovationPolicyStudies");
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// String data = "{\"metadata\": {\"title\": \"My first upload\", " +
|
||||||
|
// "\"upload_type\": \"poster\", " +
|
||||||
|
// "\"description\": \"This is my first upload\", " +
|
||||||
|
// "\"creators\": [{\"name\": \"Doe, John\", " +
|
||||||
|
// "\"affiliation': 'Zenodo'}]
|
||||||
|
//... }
|
||||||
|
//... }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
ZenodoModel zenodo = new ZenodoModel();
|
||||||
|
Metadata data = new Metadata();
|
||||||
|
|
||||||
|
data.setTitle("Dump of OpenAIRE Communities related graph");
|
||||||
|
data.setUpload_type("dataset");
|
||||||
|
data.setDescription("this is a fake uploade done for testing purposes");
|
||||||
|
Creator c = new Creator();
|
||||||
|
c.setName("Miriam Baglioni");
|
||||||
|
c.setAffiliation("CNR _ISTI");
|
||||||
|
data.setCreators(Arrays.asList(c));
|
||||||
|
zenodo.setMetadata(data);
|
||||||
|
|
||||||
|
s.sendMretadata(new Gson().toJson(zenodo));
|
||||||
|
|
||||||
|
s.publish();
|
||||||
|
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testGet() throws IOException {
|
|
||||||
// APIClient s = new APIClient("https://sandbox.zenodo.org/api/deposit/depositions");
|
|
||||||
//
|
|
||||||
// s.get();
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPublish() throws IOException {
|
||||||
|
APIClient s = new APIClient("https://sandbox.zenodo.org/api/deposit/depositions");
|
||||||
|
s.publish();
|
||||||
|
}
|
||||||
@Test
|
@Test
|
||||||
public void testUpload() throws IOException {
|
public void testUpload() throws IOException {
|
||||||
|
|
||||||
|
@ -43,5 +84,7 @@ public class ZenodoUploadTest {
|
||||||
|
|
||||||
s.upload(sourcePath, "Neuroinformatics");
|
s.upload(sourcePath, "Neuroinformatics");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue