summaryrefslogtreecommitdiffstats
path: root/examples/rgw/lua/storage_class.lua
blob: 08d41094c8c950e37f6c9bc594fc360839e62af9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
local function isempty(input)
  return input == nil or input == ''
end

if Request.RGWOp == 'put_obj' then
  RGWDebugLog("Put_Obj with StorageClass: " .. Request.HTTP.StorageClass )
  if (isempty(Request.HTTP.StorageClass)) then
    if (Request.ContentLength >= 65536) then
      RGWDebugLog("No StorageClass for Object and size >= threshold: " .. Request.Object.Name .. " adding QLC StorageClass")
      Request.HTTP.StorageClass = "QLC_CLASS"
    else
      RGWDebugLog("No StorageClass for Object and size < threshold: " .. Request.Object.Name .. " adding STANDARD StorageClass")
      Request.HTTP.StorageClass = "STANDARD"
    end
  else
    RGWDebugLog("Storage Class Header Present on Object: " .. Request.Object.Name .. " with StorageClass: " .. Request.HTTP.StorageClass)
  end
end