mirror of
https://github.com/minio/minio.git
synced 2025-11-24 03:27:44 -05:00
Expirations are now based on last accessed instead of time created
This commit is contained in:
@@ -123,6 +123,7 @@ func (memory *memoryDriver) GetObject(w io.Writer, bucket string, object string)
|
||||
dataSlice := data.([]byte)
|
||||
objectBuffer := bytes.NewBuffer(dataSlice)
|
||||
written, err := io.Copy(w, objectBuffer)
|
||||
go memory.updateAccessTime(objectKey)
|
||||
return written, iodine.New(err, nil)
|
||||
}
|
||||
}
|
||||
@@ -282,6 +283,7 @@ func (memory *memoryDriver) CreateObject(bucket, key, contentType, expectedMD5Su
|
||||
Md5: md5Sum,
|
||||
Size: int64(totalLength),
|
||||
}
|
||||
newObject.lastAccessed = time.Now()
|
||||
memory.lock.Lock()
|
||||
if _, ok := memory.objectMetadata[objectKey]; ok == true {
|
||||
memory.lock.Unlock()
|
||||
@@ -503,3 +505,12 @@ func (memory *memoryDriver) expireObjects() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (memory *memoryDriver) updateAccessTime(key string) {
|
||||
memory.lock.Lock()
|
||||
defer memory.lock.Unlock()
|
||||
if object, ok := memory.objectMetadata[key]; ok {
|
||||
object.lastAccessed = time.Now()
|
||||
memory.objectMetadata[key] = object
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user