Мне нужно загрузить файл с помощью конечных точек Google для облачных хранилищ Google и распечатать URL-адрес файла.Загрузить файл через Google Cloud Конечные точки в облаке Google Хранение через Android Client
Я не хочу запускать независимый сервлет, обрабатывающий загрузку файлов.
код сервера выглядит следующим образом:
import java.io.File;
public void saveFile(File upload,User auth) throws IOException {
if (auth!=null){
String bucketName = "app-id.appspot.com";
GcsService gcsService = GcsServiceFactory.createGcsService(new RetryParams.Builder()
.initialRetryDelayMillis(10)
.retryMaxAttempts(10)
.totalRetryPeriodMillis(15000)
.build());
String sname = upload.getName();
String extension = sname.substring(sname.lastIndexOf('.'),sname.length());
String sctype = URLConnection.guessContentTypeFromName(upload.getName());
String filename;
filename = String.valueOf(Calendar.getInstance().getTimeInMillis()) + extension;
GcsFilename gcsfileName = new GcsFilename(bucketName, filename);
GcsFileOptions options = new GcsFileOptions.Builder()
.acl("public-read").mimeType(sctype).build();
GcsOutputChannel outputChannel =
gcsService.createOrReplace(gcsfileName, options);
InputStream stream = new FileInputStream(upload);
copy(stream, Channels.newOutputStream(outputChannel));
}
}
private static final int BUFFER_SIZE = 2 * 1024 * 1024;
private void copy(InputStream input, OutputStream output) throws IOException {
try {
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = input.read(buffer);
while (bytesRead != -1) {
output.write(buffer, 0, bytesRead);
bytesRead = input.read(buffer);
}
} finally {
input.close();
output.close();
}
}
Но когда я восстановить проект, импорт java.io.File
преобразуется в com.backend.managerApi.model.File
в созданных клиентских библиотек.
Итак, есть ли способ сделать это, или нам просто нужно запустить независимый сервлет для обработки загрузок?