@@ -154,17 +154,24 @@ assertHttpRequestEquals "HEAD" "b/c/d.txt" "200"
154
154
assertHttpRequestEquals " HEAD" " b/c/../e.txt" " 200"
155
155
assertHttpRequestEquals " HEAD" " b/e.txt" " 200"
156
156
assertHttpRequestEquals " HEAD" " b//e.txt" " 200"
157
+ assertHttpRequestEquals " HEAD" " a/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.txt" " 200"
157
158
158
159
# Weird filenames
159
160
assertHttpRequestEquals " HEAD" " b/c/=" " 200"
160
161
assertHttpRequestEquals " HEAD" " b/c/@" " 200"
161
162
assertHttpRequestEquals " HEAD" " b/c/'(1).txt" " 200"
162
163
assertHttpRequestEquals " HEAD" " %D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B/%25bad%25file%25name%25" " 200"
164
+ assertHttpRequestEquals " HEAD" ' a/plus+plus.txt' " 200"
163
165
if [ ${is_windows} == " 0" ]; then
164
166
assertHttpRequestEquals " HEAD" " a/c/あ" " 200"
165
167
assertHttpRequestEquals " HEAD" " b/クズ箱/ゴミ.txt" " 200"
166
168
assertHttpRequestEquals " HEAD" " системы/system.txt" " 200"
167
169
assertHttpRequestEquals " HEAD" " b/ブツブツ.txt" " 200"
170
+ # The following two objects do not get encoded correctly by curl when requested using their
171
+ # unicode names. The are provided as URL encoded as below. This is the same type of encoding
172
+ # expected by S3 and divergence from it will not work with nginx either.
173
+ assertHttpRequestEquals " HEAD" ' a/%25%40%21%2A%28%29%3D%24%23%5E%26%7C.txt' " 200"
174
+ assertHttpRequestEquals " HEAD" ' a/%E3%81%93%E3%82%8C%E3%81%AF%E3%80%80This%20is%20ASCII%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%20%20%D7%97%D7%9F%20.txt' " 200"
168
175
fi
169
176
170
177
# Expected 400s
219
226
220
227
# Verify GET is working
221
228
assertHttpRequestEquals " GET" " a.txt" " data/bucket-1/a.txt"
229
+ assertHttpRequestEquals " GET" " a/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.txt" " data/bucket-1/a/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.txt"
222
230
assertHttpRequestEquals " GET" " a.txt?some=param&that=should&be=stripped#aaah" " data/bucket-1/a.txt"
223
231
assertHttpRequestEquals " GET" " b/c/d.txt" " data/bucket-1/b/c/d.txt"
224
232
assertHttpRequestEquals " GET" " b/c/=" " data/bucket-1/b/c/="
225
233
assertHttpRequestEquals " GET" " b/c/'(1).txt" " data/bucket-1/b/c/'(1).txt"
226
234
assertHttpRequestEquals " GET" " b/e.txt" " data/bucket-1/b/e.txt"
227
235
assertHttpRequestEquals " GET" " %D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B/%25bad%25file%25name%25" " data/bucket-1/системы/%bad%file%name%"
236
+ assertHttpRequestEquals " GET" ' a/plus+plus.txt' " data/bucket-1/a/plus+plus.txt"
228
237
229
238
if [ ${is_windows} == " 0" ]; then
230
239
assertHttpRequestEquals " GET" " a/c/あ" " data/bucket-1/a/c/あ"
231
240
assertHttpRequestEquals " GET" " b/ブツブツ.txt" " data/bucket-1/b/ブツブツ.txt"
232
241
assertHttpRequestEquals " GET" " b/クズ箱/ゴミ.txt" " data/bucket-1/b/クズ箱/ゴミ.txt"
233
242
assertHttpRequestEquals " GET" " системы/system.txt" " data/bucket-1/системы/system.txt"
243
+ # The following two objects do not get encoded correctly by curl when requested using their
244
+ # unicode names. The are provided as URL encoded as below. This is the same type of encoding
245
+ # expected by S3 and divergence from it will not work with nginx either.
246
+ assertHttpRequestEquals " GET" ' a/%25%40%21%2A%28%29%3D%24%23%5E%26%7C.txt' ' data/bucket-1/a/%@!*()=$#^&|.txt'
247
+ assertHttpRequestEquals " GET" ' a/%E3%81%93%E3%82%8C%E3%81%AF%E3%80%80This%20is%20ASCII%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%20%20%D7%97%D7%9F%20.txt' " data/bucket-1/a/これは This is ASCII системы חן .txt"
234
248
fi
235
249
236
250
if [ " ${index_page} " == " 1" ]; then
0 commit comments