internal bool AddObject(Obj obj, Stream stream) { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } if (String.IsNullOrEmpty(obj.GUID)) { obj.GUID = Guid.NewGuid().ToString(); } obj.BucketGUID = _Bucket.GUID; Obj test = GetObjectMetadata(obj.Key); if (test != null) { if (!_Bucket.EnableVersioning) { _Logging.Warn("BucketClient Add versioning disabled and object " + _Bucket.Name + "/" + obj.Key + " already exists"); return(false); } obj.Version = (test.Version + 1); } else { obj.Version = 1; } obj.Md5 = Common.BytesToHexString(_StorageDriver.Write(obj.BlobFilename, obj.ContentLength, stream)); if (String.IsNullOrEmpty(obj.Etag)) { obj.Etag = obj.Md5; } DateTime ts = DateTime.Now.ToUniversalTime(); obj.CreatedUtc = ts; obj.LastAccessUtc = ts; obj.LastUpdateUtc = ts; obj.ExpirationUtc = null; _ORM.Insert <Obj>(obj); return(true); }