|
|
|
@@ -18,7 +18,10 @@ var ( |
|
|
|
_ ObjectStorage = &MinioStorage{} |
|
|
|
) |
|
|
|
|
|
|
|
const PRESIGNED_URL_EXPIRE_TIME = time.Hour * 24 * 7 |
|
|
|
const ( |
|
|
|
PresignedGetUrlExpireTime = time.Hour * 24 * 7 |
|
|
|
PresignedPutUrlExpireTime = time.Hour * 24 * 7 |
|
|
|
) |
|
|
|
|
|
|
|
// MinioStorage returns a minio bucket storage |
|
|
|
type MinioStorage struct { |
|
|
|
@@ -73,14 +76,25 @@ func (m *MinioStorage) Delete(path string) error { |
|
|
|
return m.client.RemoveObject(m.bucket, m.buildMinioPath(path)) |
|
|
|
} |
|
|
|
|
|
|
|
//Get Presigned URL |
|
|
|
//Get Presigned URL for get object |
|
|
|
func (m *MinioStorage) PresignedGetURL(path string, fileName string) (string,error) { |
|
|
|
// Set request parameters for content-disposition. |
|
|
|
reqParams := make(url.Values) |
|
|
|
reqParams.Set("response-content-disposition", "attachment; filename=\"" + fileName + "\"") |
|
|
|
|
|
|
|
var preURL *url.URL |
|
|
|
preURL,err := m.client.PresignedGetObject(m.bucket, m.buildMinioPath(path), PRESIGNED_URL_EXPIRE_TIME, reqParams) |
|
|
|
preURL,err := m.client.PresignedGetObject(m.bucket, m.buildMinioPath(path), PresignedGetUrlExpireTime, reqParams) |
|
|
|
if err != nil { |
|
|
|
return "",err |
|
|
|
} |
|
|
|
|
|
|
|
return preURL.String(),nil |
|
|
|
} |
|
|
|
|
|
|
|
//Get Presigned URL for put object |
|
|
|
func (m *MinioStorage) PresignedPutURL(path string) (string,error) { |
|
|
|
var preURL *url.URL |
|
|
|
preURL,err := m.client.PresignedPutObject(m.bucket, m.buildMinioPath(path), PresignedPutUrlExpireTime) |
|
|
|
if err != nil { |
|
|
|
return "",err |
|
|
|
} |
|
|
|
|