Search in sources :

Example 1 with LargeFileUploadTask

use of com.microsoft.graph.tasks.LargeFileUploadTask in project msgraph-beta-sdk-java by microsoftgraph.

the class OneDriveTests method testLargeFileUpload.

/**
 * Test large file upload.
 * https://github.com/OneDrive/onedrive-sdk-csharp/blob/master/docs/chunked-uploads.md
 *
 * @throws IOException if the input file is not found
 * @throws InterruptedException if the chunked upload fails
 */
@Test
@Disabled
public void testLargeFileUpload() throws IOException, InterruptedException {
    setUp();
    // Get resource file from file system
    InputStream uploadFile = OneDriveTests.class.getClassLoader().getResourceAsStream("largefile10M.blob");
    long fileSize = (long) uploadFile.available();
    UploadSession uploadSession = testBase.graphClient.me().drive().root().itemWithPath("largefile10M.blob").createUploadSession(DriveItemCreateUploadSessionParameterSet.newBuilder().withItem(new DriveItemUploadableProperties()).build()).buildRequest().post();
    LargeFileUploadTask<DriveItem> chunkedUploadProvider = new LargeFileUploadTask<DriveItem>(uploadSession, testBase.graphClient, uploadFile, fileSize, DriveItem.class);
    final LargeFileUploadResult<DriveItem> result = chunkedUploadProvider.upload(0, null, callback);
    assertNotNull(result);
}
Also used : DriveItem(com.microsoft.graph.models.DriveItem) DriveItemUploadableProperties(com.microsoft.graph.models.DriveItemUploadableProperties) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) LargeFileUploadTask(com.microsoft.graph.tasks.LargeFileUploadTask) UploadSession(com.microsoft.graph.models.UploadSession) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Example 2 with LargeFileUploadTask

use of com.microsoft.graph.tasks.LargeFileUploadTask in project msgraph-beta-sdk-java by microsoftgraph.

the class OutlookTests method testSendDraftWithLargeAttachements.

@Test
public void testSendDraftWithLargeAttachements() throws FileNotFoundException, IOException {
    TestBase testBase = new TestBase();
    // Attempt to identify the sent message via randomly generated subject
    String draftSubject = "Draft Test Message " + Double.toString(Math.random() * 1000);
    Message newMessage = createDraftMessage(testBase, draftSubject);
    File file = new File("src/test/resources/largefile10M.blob");
    AttachmentItem attachmentItem = new AttachmentItem();
    attachmentItem.attachmentType = AttachmentType.FILE;
    attachmentItem.name = file.getName();
    attachmentItem.size = file.length();
    attachmentItem.contentType = "application/octet-stream";
    InputStream fileStream = OutlookTests.class.getClassLoader().getResourceAsStream("largefile10M.blob");
    long streamSize = attachmentItem.size;
    UploadSession uploadSession = testBase.graphClient.me().messages(newMessage.id).attachments().createUploadSession(AttachmentCreateUploadSessionParameterSet.newBuilder().withAttachmentItem(attachmentItem).build()).buildRequest().post();
    LargeFileUploadTask<AttachmentItem> chunkedUploadProvider = new LargeFileUploadTask<>(uploadSession, testBase.graphClient, fileStream, streamSize, AttachmentItem.class);
    // Do the upload
    final LargeFileUploadResult<AttachmentItem> result = chunkedUploadProvider.upload(0, null, callback);
    assertNotNull(result);
    // Send the drafted message
    testBase.graphClient.me().mailFolders("Drafts").messages(newMessage.id).send().buildRequest().post();
}
Also used : Message(com.microsoft.graph.models.Message) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) LargeFileUploadTask(com.microsoft.graph.tasks.LargeFileUploadTask) UploadSession(com.microsoft.graph.models.UploadSession) File(java.io.File) AttachmentItem(com.microsoft.graph.models.AttachmentItem) Test(org.junit.jupiter.api.Test)

Example 3 with LargeFileUploadTask

use of com.microsoft.graph.tasks.LargeFileUploadTask in project msgraph-sdk-java by microsoftgraph.

the class OneDriveTests method testLargeFileUpload.

/**
 * Test large file upload.
 * https://github.com/OneDrive/onedrive-sdk-csharp/blob/master/docs/chunked-uploads.md
 *
 * @throws IOException if the input file is not found
 * @throws InterruptedException if the chunked upload fails
 */
@Test
@Disabled
public void testLargeFileUpload() throws IOException, InterruptedException {
    setUp();
    // Get resource file from file system
    InputStream uploadFile = OneDriveTests.class.getClassLoader().getResourceAsStream("largefile10M.blob");
    long fileSize = (long) uploadFile.available();
    UploadSession uploadSession = testBase.graphClient.me().drive().root().itemWithPath("largefile10M.blob").createUploadSession(DriveItemCreateUploadSessionParameterSet.newBuilder().withItem(new DriveItemUploadableProperties()).build()).buildRequest().post();
    LargeFileUploadTask<DriveItem> chunkedUploadProvider = new LargeFileUploadTask<DriveItem>(uploadSession, testBase.graphClient, uploadFile, fileSize, DriveItem.class);
    final LargeFileUploadResult<DriveItem> result = chunkedUploadProvider.upload(0, null, callback);
    assertNotNull(result);
}
Also used : DriveItem(com.microsoft.graph.models.DriveItem) DriveItemUploadableProperties(com.microsoft.graph.models.DriveItemUploadableProperties) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) LargeFileUploadTask(com.microsoft.graph.tasks.LargeFileUploadTask) UploadSession(com.microsoft.graph.models.UploadSession) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Example 4 with LargeFileUploadTask

use of com.microsoft.graph.tasks.LargeFileUploadTask in project msgraph-sdk-java by microsoftgraph.

the class OneDriveTests method downloadJsonFileFromOneDrive.

@Test
@Disabled
public void downloadJsonFileFromOneDrive() throws Exception {
    setUp();
    final DriveItemUploadableProperties item = new DriveItemUploadableProperties();
    item.name = "test.json";
    item.additionalDataManager().put("@microsoft.graph.conflictBehavior", new JsonPrimitive("replace"));
    final InputStream uploadFile = new ByteArrayInputStream("{\"hehe\":\"haha\"}".getBytes(StandardCharsets.UTF_8));
    final long fileSize = (long) uploadFile.available();
    final UploadSession session = testBase.graphClient.me().drive().root().itemWithPath(item.name).createUploadSession(DriveItemCreateUploadSessionParameterSet.newBuilder().withItem(item).build()).buildRequest().post();
    LargeFileUploadTask<DriveItem> chunkedUploadProvider = new LargeFileUploadTask<DriveItem>(session, testBase.graphClient, uploadFile, fileSize, DriveItem.class);
    final LargeFileUploadResult<DriveItem> result = chunkedUploadProvider.upload(0, null, callback);
    assertNotNull(result);
    final InputStream stream = testBase.graphClient.me().drive().root().itemWithPath(item.name).content().buildRequest().get();
    final String fileContent = CoreHttpProvider.streamToString(stream);
    assertTrue(fileContent.length() > 0);
}
Also used : DriveItem(com.microsoft.graph.models.DriveItem) DriveItemUploadableProperties(com.microsoft.graph.models.DriveItemUploadableProperties) JsonPrimitive(com.google.gson.JsonPrimitive) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) LargeFileUploadTask(com.microsoft.graph.tasks.LargeFileUploadTask) UploadSession(com.microsoft.graph.models.UploadSession) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Example 5 with LargeFileUploadTask

use of com.microsoft.graph.tasks.LargeFileUploadTask in project msgraph-sdk-java by microsoftgraph.

the class OutlookTests method testSendDraftWithLargeAttachements.

@Test
public void testSendDraftWithLargeAttachements() throws FileNotFoundException, IOException {
    TestBase testBase = new TestBase();
    // Attempt to identify the sent message via randomly generated subject
    String draftSubject = "Draft Test Message " + Double.toString(Math.random() * 1000);
    Message newMessage = createDraftMessage(testBase, draftSubject);
    File file = new File("src/test/resources/largefile10M.blob");
    AttachmentItem attachmentItem = new AttachmentItem();
    attachmentItem.attachmentType = AttachmentType.FILE;
    attachmentItem.name = file.getName();
    attachmentItem.size = file.length();
    attachmentItem.contentType = "application/octet-stream";
    InputStream fileStream = OutlookTests.class.getClassLoader().getResourceAsStream("largefile10M.blob");
    long streamSize = attachmentItem.size;
    UploadSession uploadSession = testBase.graphClient.me().messages(newMessage.id).attachments().createUploadSession(AttachmentCreateUploadSessionParameterSet.newBuilder().withAttachmentItem(attachmentItem).build()).buildRequest().post();
    LargeFileUploadTask<AttachmentItem> chunkedUploadProvider = new LargeFileUploadTask<>(uploadSession, testBase.graphClient, fileStream, streamSize, AttachmentItem.class);
    // Do the upload
    final LargeFileUploadResult<AttachmentItem> result = chunkedUploadProvider.upload(0, null, callback);
    assertNotNull(result);
    // Send the drafted message
    testBase.graphClient.me().mailFolders("Drafts").messages(newMessage.id).send().buildRequest().post();
}
Also used : Message(com.microsoft.graph.models.Message) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) LargeFileUploadTask(com.microsoft.graph.tasks.LargeFileUploadTask) UploadSession(com.microsoft.graph.models.UploadSession) File(java.io.File) AttachmentItem(com.microsoft.graph.models.AttachmentItem) Test(org.junit.jupiter.api.Test)

Aggregations

UploadSession (com.microsoft.graph.models.UploadSession)6 LargeFileUploadTask (com.microsoft.graph.tasks.LargeFileUploadTask)6 InputStream (java.io.InputStream)6 Test (org.junit.jupiter.api.Test)6 DriveItem (com.microsoft.graph.models.DriveItem)4 DriveItemUploadableProperties (com.microsoft.graph.models.DriveItemUploadableProperties)4 ByteArrayInputStream (java.io.ByteArrayInputStream)4 Disabled (org.junit.jupiter.api.Disabled)4 JsonPrimitive (com.google.gson.JsonPrimitive)2 AttachmentItem (com.microsoft.graph.models.AttachmentItem)2 Message (com.microsoft.graph.models.Message)2 File (java.io.File)2 FileInputStream (java.io.FileInputStream)2