-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support StripPrefix on upload for TransferManager #2573
Comments
Adding scenarios to show some context - need some traction on this Environment detailsOS type and version: MacOS 14.6.1 / Windows 11 (issue happens on both) Steps to reproduce
Code examplepackage org.example;
import com.google.cloud.storage.transfermanager.ParallelUploadConfig;
import com.google.cloud.storage.transfermanager.TransferManager;
import com.google.cloud.storage.transfermanager.TransferManagerConfig;
import com.google.cloud.storage.transfermanager.UploadResult;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) throws IOException {
uploadDirectoryContents(args[0], Paths.get(args[1]), args[2]);
}
private static void uploadDirectoryContents(String bucketName, Path sourceDirectory, String remotePath) throws IOException {
TransferManager transferManager = TransferManagerConfig.newBuilder().build().getService();
ParallelUploadConfig parallelUploadConfig = ParallelUploadConfig.newBuilder()
.setBucketName(bucketName)
.setPrefix(remotePath)
.build();
List<Path> filePaths = new ArrayList<>();
try (Stream<Path> pathStream = Files.walk(sourceDirectory)) {
pathStream.filter(Files::isRegularFile).forEach(filePaths::add);
}
List<UploadResult> results = transferManager.uploadFiles(filePaths, parallelUploadConfig).getUploadResults();
for (UploadResult result : results) {
System.out.println(
"Upload for "
+ result.getInput().getName()
+ " completed with status "
+ result.getStatus());
}
}
} Run the above example using arguments I would expect that the bucket contains the following files now gs://my-bucket-name/destination/file1.txt However, the bucket contains the following (for a MacOS scenario) gs://my-bucket-name/destination/Users/me/source/dir/file1.txt For Windows, the |
…name instead of the full file path (googleapis#2573)
…name instead of the full file path (googleapis#2573)
Currently transfer manager supports stripping a customer supplied prefix on an object on object download, the same functionality is not supported on upload and the name of the object maintains the full File name as the object name.
The text was updated successfully, but these errors were encountered: