package object import ( "strconv" objectV2 "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/object" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" ) // AddressOf returns the address of the object. func AddressOf(obj *objectSDK.Object) oid.Address { var addr oid.Address id, ok := obj.ID() if ok { addr.SetObject(id) } cnr, ok := obj.ContainerID() if ok { addr.SetContainer(cnr) } return addr } // GetExpirationEpoch returns the expiration epoch of the object. func GetExpirationEpoch(obj *objectSDK.Object) (has bool, epoch uint64, err error) { attrs := obj.Attributes() if header := obj.ECHeader(); header != nil { attrs = header.ParentAttributes() } for _, attr := range attrs { if attr.Key() != objectV2.SysAttributeExpEpoch { continue } epoch, err := strconv.ParseUint(attr.Value(), 10, 64) if err != nil { return false, 0, err } return true, epoch, nil } return }