0
Google Docに変換せずにzipファイルをアップロードするためのコードスニペットを次のように持っています。Google Docへのアップロード中に同じファイル名でzipファイルを上書きする方法
package sample.docs;
import com.google.gdata.client.docs.*;
import com.google.gdata.data.docs.*;
import com.google.gdata.util.*;
import java.io.IOException;
import java.net.MalformedURLException;
import com.google.gdata.client.media.ResumableGDataFileUploader;
import com.google.gdata.client.uploader.FileUploadData;
import com.google.gdata.client.uploader.ProgressListener;
import com.google.gdata.client.uploader.ResumableHttpFileUploader;
import com.google.gdata.data.media.MediaFileSource;
import java.io.File;
import java.net.URL;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class DocumentListDemo {
private static class FileUploadProgressListener implements ProgressListener {
final CountDownLatch countDownLatch = new CountDownLatch(1);
@Override
public synchronized void progressChanged(ResumableHttpFileUploader uploader)
{
final String fileId = ((FileUploadData) uploader.getData()).getFileName();
switch(uploader.getUploadState()) {
case COMPLETE:
case CLIENT_ERROR:
countDownLatch.countDown();
System.out.println(fileId + ": Completed");
break;
case IN_PROGRESS:
System.out.println(fileId + ":" + String.format("%3.0f", uploader.getProgress() * 100) + "%");
break;
case NOT_STARTED:
System.out.println(fileId + ":" + "Not Started");
break;
}
}
public void await() throws InterruptedException {
countDownLatch.await();
}
}
public static void main(String[] args) throws MalformedURLException, IOException, ServiceException, InterruptedException, DocumentListException {
int MAX_CONCURRENT_UPLOADS = 10;
int PROGRESS_UPDATE_INTERVAL = 1000;
int DEFAULT_CHUNK_SIZE = 10485760;
DocsService client = new DocsService("JStock");
client.setUserCredentials("[email protected]", "this-is-my-password");
// Create a listener
FileUploadProgressListener listener = new FileUploadProgressListener();
// Pool for handling concurrent upload tasks
ExecutorService executor = Executors.newFixedThreadPool(MAX_CONCURRENT_UPLOADS);
File file = new File("c:\\Pictures.zip");
String contentType = DocumentListEntry.MediaType.fromFileName(file.getName()).getMimeType();
MediaFileSource mediaFile = new MediaFileSource(file, contentType);
URL createUploadUrl = new URL("https://docs.google.com/feeds/upload/create-session/default/private/full");
ResumableGDataFileUploader uploader = new ResumableGDataFileUploader.Builder(client, createUploadUrl, mediaFile, null)
.title(mediaFile.getName())
.chunkSize(DEFAULT_CHUNK_SIZE).executor(executor)
.trackProgress(listener, PROGRESS_UPDATE_INTERVAL)
.build();
uploader.start();
// Wait for completion.
listener.await();
// Thread clean up.
executor.shutdownNow();
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
System.out.println("done!");
}
}
上記のコードをコンパイルするには、次の4つのライブラリが必要です。
しかし、私は何度も何度も同じファイル名でファイルをアップロードしようとすると、以前アップロードされたファイルはを上書きされません、実現しています。
上記のコードを4回実行した場合の結果です。
私はGoogleドキュメントにアップロードする時に、同じファイル名でファイルを上書きすることができますどのように、知っているかもしれませんか?