@@ -120,35 +120,39 @@ public File downloadExport(Object projectIdOrPath, File directory, String filena
120
120
121
121
Response response = getWithAccepts (Response .Status .OK , null , MediaType .MEDIA_TYPE_WILDCARD ,
122
122
"projects" , getProjectIdOrPath (projectIdOrPath ), "export" , "download" );
123
- try {
124
123
125
- if (directory == null )
126
- directory = new File (System .getProperty ("java.io.tmpdir" ));
127
-
128
- if (filename == null ) {
129
- // No filename provided
130
- String disposition = response .getHeaderString ("Content-Disposition" );
131
- if (disposition == null ) {
132
- // On GitLab.com the Content-Disposition returned is null
133
- if (projectIdOrPath instanceof Project ) {
134
- String template = "%1$tY-%1$tm-%1$td_%1$tH-%1$tM-%1$tS_%2$s_export.tar.gz" ;
135
- filename = String .format (template , new Date (), ((Project ) projectIdOrPath ).getPathWithNamespace ().replace ('/' , '_' ));
136
- // filename = "2019-06-10_10-28-52_namespace-group_test-project_export.tar.gz"
137
- } else if (projectIdOrPath instanceof String ) {
138
- String template = "%1$tY-%1$tm-%1$td_%1$tH-%1$tM-%1$tS_%2$s_export.tar.gz" ;
139
- filename = String .format (template , new Date (), projectIdOrPath );
140
- // filename = "2019-06-10_10-28-52_test-project_export.tar.gz"
141
- } else if (projectIdOrPath instanceof Integer ) {
142
- String template = "%1$tY-%1$tm-%1$td_%1$tH-%1$tM-%1%tS_projectid-%2$d_export.tar.gz" ;
143
- filename = String .format (template , new Date (), projectIdOrPath );
144
- // filename = "2019-06-10_10-28-52_projectid_3115610_export.tar.gz"
145
- }
146
- } else {
147
- filename = disposition .replaceFirst ("(?i)^.*filename=\" ?([^\" ]+)\" ?.*$" , "$1" );
124
+ if (directory == null ) {
125
+ directory = new File (System .getProperty ("java.io.tmpdir" ));
126
+ }
127
+
128
+ if (filename == null ) {
129
+
130
+ // No filename provided
131
+ String disposition = response .getHeaderString ("Content-Disposition" );
132
+ if (disposition == null ) {
133
+
134
+ // On GitLab.com the Content-Disposition returned is null
135
+ String name = null ;
136
+ if (projectIdOrPath instanceof Project ) {
137
+ name = ((Project ) projectIdOrPath ).getPathWithNamespace ().replace ('/' , '_' );
138
+ } else if (projectIdOrPath instanceof String ) {
139
+ name = (String )projectIdOrPath ;
140
+ } else if (projectIdOrPath instanceof Integer ) {
141
+ name = "projectid-" + projectIdOrPath ;
148
142
}
143
+
144
+ // template = "YYYY-MM-DD_HH-MM-SS_{name}_export.tar.gz"
145
+ final String template = "%1$tY-%1$tm-%1$td_%1$tH-%1$tM-%1$tS_%2$s_export.tar.gz" ;
146
+ filename = String .format (template , new Date (), name );
147
+
148
+ } else {
149
+ filename = disposition .replaceFirst ("(?i)^.*filename=\" ?([^\" ]+)\" ?.*$" , "$1" );
149
150
}
150
- File file = new File ( directory , filename );
151
+ }
151
152
153
+ try {
154
+
155
+ File file = new File (directory , filename );
152
156
InputStream in = response .readEntity (InputStream .class );
153
157
Files .copy (in , file .toPath (), StandardCopyOption .REPLACE_EXISTING );
154
158
return (file );
0 commit comments