forked from TrueCloudLab/frostfs-s3-gw
[#469] List multipart uploads streaming
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
This commit is contained in:
parent
a7ce40d745
commit
c85f619f48
21 changed files with 673 additions and 383 deletions
|
@ -293,6 +293,35 @@ func TestListMultipartUploads(t *testing.T) {
|
|||
require.Equal(t, uploadInfo2.UploadID, listUploads.Uploads[1].UploadID)
|
||||
})
|
||||
|
||||
t.Run("incorrect prefix - empty result", func(t *testing.T) {
|
||||
listUploads := listMultipartUploads(hc, bktName, "/not/exists", "", "", "", -1)
|
||||
require.Len(t, listUploads.Uploads, 0)
|
||||
})
|
||||
|
||||
t.Run("check delimiter", func(t *testing.T) {
|
||||
t.Run("not truncated", func(t *testing.T) {
|
||||
listUploads := listMultipartUploads(hc, bktName, "/", "/", "", "", -1)
|
||||
require.Len(t, listUploads.Uploads, 0)
|
||||
require.Len(t, listUploads.CommonPrefixes, 2)
|
||||
require.Equal(t, "/my/", listUploads.CommonPrefixes[0].Prefix)
|
||||
require.Equal(t, "/zzz/", listUploads.CommonPrefixes[1].Prefix)
|
||||
})
|
||||
|
||||
t.Run("truncated", func(t *testing.T) {
|
||||
listUploads := listMultipartUploads(hc, bktName, "/", "/", "", "", 1)
|
||||
require.Len(t, listUploads.Uploads, 0)
|
||||
require.Len(t, listUploads.CommonPrefixes, 1)
|
||||
require.Equal(t, "/my/", listUploads.CommonPrefixes[0].Prefix)
|
||||
require.True(t, listUploads.IsTruncated)
|
||||
|
||||
listUploads = listMultipartUploads(hc, bktName, "/", "/", listUploads.NextUploadIDMarker, listUploads.NextKeyMarker, 1)
|
||||
require.Len(t, listUploads.Uploads, 0)
|
||||
require.Len(t, listUploads.CommonPrefixes, 1)
|
||||
require.Equal(t, "/zzz/", listUploads.CommonPrefixes[0].Prefix)
|
||||
require.False(t, listUploads.IsTruncated)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("check markers", func(t *testing.T) {
|
||||
t.Run("check only key-marker", func(t *testing.T) {
|
||||
listUploads := listMultipartUploads(hc, bktName, "", "", "", objName2, -1)
|
||||
|
@ -321,6 +350,58 @@ func TestListMultipartUploads(t *testing.T) {
|
|||
require.Equal(t, uploadInfo3.UploadID, listUploads.Uploads[0].UploadID)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("check next markers", func(t *testing.T) {
|
||||
t.Run("check both next-key-marker and next-upload-id-marker", func(t *testing.T) {
|
||||
listUploads := listMultipartUploads(hc, bktName, "", "", "", "", 1)
|
||||
require.True(t, listUploads.IsTruncated)
|
||||
require.Len(t, listUploads.Uploads, 1)
|
||||
require.Equal(t, uploadInfo1.Key, listUploads.NextKeyMarker)
|
||||
require.Equal(t, uploadInfo1.UploadID, listUploads.NextUploadIDMarker)
|
||||
require.Equal(t, uploadInfo1.UploadID, listUploads.Uploads[0].UploadID)
|
||||
require.Equal(t, uploadInfo1.Key, listUploads.Uploads[0].Key)
|
||||
|
||||
listUploads = listMultipartUploads(hc, bktName, "", "", listUploads.NextUploadIDMarker, listUploads.NextKeyMarker, 1)
|
||||
require.True(t, listUploads.IsTruncated)
|
||||
require.Len(t, listUploads.Uploads, 1)
|
||||
require.Equal(t, uploadInfo2.Key, listUploads.NextKeyMarker)
|
||||
require.Equal(t, uploadInfo2.UploadID, listUploads.NextUploadIDMarker)
|
||||
require.Equal(t, uploadInfo2.UploadID, listUploads.Uploads[0].UploadID)
|
||||
require.Equal(t, uploadInfo2.Key, listUploads.Uploads[0].Key)
|
||||
|
||||
listUploads = listMultipartUploads(hc, bktName, "", "", listUploads.NextUploadIDMarker, listUploads.NextKeyMarker, 1)
|
||||
require.False(t, listUploads.IsTruncated)
|
||||
require.Len(t, listUploads.Uploads, 1)
|
||||
require.Empty(t, listUploads.NextUploadIDMarker)
|
||||
require.Empty(t, listUploads.NextKeyMarker)
|
||||
require.Equal(t, uploadInfo3.UploadID, listUploads.Uploads[0].UploadID)
|
||||
})
|
||||
|
||||
t.Run("check only next-key-marker", func(t *testing.T) {
|
||||
listUploads := listMultipartUploads(hc, bktName, "", "", "", "", 1)
|
||||
require.True(t, listUploads.IsTruncated)
|
||||
require.Len(t, listUploads.Uploads, 1)
|
||||
require.Equal(t, uploadInfo1.Key, listUploads.NextKeyMarker)
|
||||
require.Equal(t, uploadInfo1.UploadID, listUploads.NextUploadIDMarker)
|
||||
require.Equal(t, uploadInfo1.UploadID, listUploads.Uploads[0].UploadID)
|
||||
require.Equal(t, uploadInfo1.Key, listUploads.Uploads[0].Key)
|
||||
|
||||
listUploads = listMultipartUploads(hc, bktName, "", "", "", listUploads.NextKeyMarker, 1)
|
||||
require.True(t, listUploads.IsTruncated)
|
||||
require.Len(t, listUploads.Uploads, 1)
|
||||
require.Equal(t, uploadInfo2.Key, listUploads.NextKeyMarker)
|
||||
require.Equal(t, uploadInfo2.UploadID, listUploads.NextUploadIDMarker)
|
||||
require.Equal(t, uploadInfo2.UploadID, listUploads.Uploads[0].UploadID)
|
||||
require.Equal(t, uploadInfo2.Key, listUploads.Uploads[0].Key)
|
||||
|
||||
listUploads = listMultipartUploads(hc, bktName, "", "", "", listUploads.NextKeyMarker, 1)
|
||||
require.False(t, listUploads.IsTruncated)
|
||||
require.Len(t, listUploads.Uploads, 1)
|
||||
require.Empty(t, listUploads.NextUploadIDMarker)
|
||||
require.Empty(t, listUploads.NextKeyMarker)
|
||||
require.Equal(t, uploadInfo3.UploadID, listUploads.Uploads[0].UploadID)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestMultipartUploadSize(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue