diff --git a/cmd/helpMessages.go b/cmd/helpMessages.go index f45d11e3c3..b60db2fa9d 100644 --- a/cmd/helpMessages.go +++ b/cmd/helpMessages.go @@ -258,7 +258,7 @@ const listCmdShortDescription = "List the entities in a given resource" const listCmdLongDescription = `List the entities in a given resource. Blob, Files, and ADLS Gen 2 containers, folders, and accounts are supported.` const listCmdExample = "azcopy list [containerURL] --properties [semicolon(;) separated list of attributes " + - "(LastModifiedTime, VersionId, BlobType, BlobAccessTier, ContentType, ContentEncoding, LeaseState, LeaseDuration, LeaseStatus) " + + "(LastModifiedTime, VersionId, BlobType, BlobAccessTier, ContentType, ContentEncoding, ContentMD5, LeaseState, LeaseDuration, LeaseStatus) " + "enclosed in double quotes (\")]" // ===================================== LOGIN COMMAND ===================================== // diff --git a/cmd/list.go b/cmd/list.go index 478030399f..1bc24b9abe 100755 --- a/cmd/list.go +++ b/cmd/list.go @@ -26,6 +26,7 @@ import ( "fmt" "strconv" "strings" + "encoding/base64" "github.com/Azure/azure-pipeline-go/pipeline" @@ -54,6 +55,7 @@ const ( blobAccessTier validProperty = "BlobAccessTier" contentType validProperty = "ContentType" contentEncoding validProperty = "ContentEncoding" + contentMD5 validProperty = "ContentMD5" leaseState validProperty = "LeaseState" leaseDuration validProperty = "LeaseDuration" leaseStatus validProperty = "LeaseStatus" @@ -63,7 +65,7 @@ const ( // validProperties returns an array of possible values for the validProperty const type. func validProperties() []validProperty { return []validProperty{lastModifiedTime, versionId, blobType, blobAccessTier, - contentType, contentEncoding, leaseState, leaseDuration, leaseStatus, archiveStatus} + contentType, contentEncoding, contentMD5, leaseState, leaseDuration, leaseStatus, archiveStatus} } func (raw *rawListCmdArgs) parseProperties(rawProperties string) []validProperty { @@ -177,6 +179,8 @@ func (cooked cookedListCmdArgs) processProperties(object StoredObject) string { builder.WriteString(propertyStr + ": " + object.contentType + "; ") case contentEncoding: builder.WriteString(propertyStr + ": " + object.contentEncoding + "; ") + case contentMD5: + builder.WriteString(propertyStr + ": " + base64.StdEncoding.EncodeToString(object.md5) + "; ") case leaseState: builder.WriteString(propertyStr + ": " + string(object.leaseState) + "; ") case leaseStatus: