用curl 进行 swift操作


# create 101 containers
for((i=100; i<=200;i++)) do swift post c${i}; done

#auth
curl -d '{"auth": {"tenantName": "test", "passwordCredentials":{"username": "tester", "password": "testing"}}}' -H "Content-type: application/json" http://192.168.26.69:5000/v2.0/tokens

export STORAGE_URL=http://192.168.26.69:8080/v1/AUTH_3e2a0a2df18b4f86a52e2dc6ad3cb989
export TOKEN_ID=61262d00da1d4370b8b2b80355f2b5cb

#LIST CONTAINERS The system returns a maximum of 10,000 container names per request.
#Controlling a Large List of Containers,-v to show detail data.
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}

#LIST CONTAINERS,only show the first Nth container
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}?limit=10
curl -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}?limit=10&marker=c1"
curl -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}?limit=10&marker=c1&end_marker=c105"


### ACCOUNT METADATA
curl --head -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}"

#CREATE ACCOUNT METADATA
curl -d '' -H "X-Auth-Token:${TOKEN_ID}" -H "X-Account-Meta-Book: MobyDick" "${STORAGE_URL}"  

curl --head -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}"
#MODIFY METADATA
curl -d '' -H "X-Auth-Token:${TOKEN_ID}" -H "X-Account-Meta-Book: zzDick" "${STORAGE_URL}"  
#Delete Account Metadata
#METHOD 1,SET NULL VALUE
curl -d '' -H "X-Auth-Token:${TOKEN_ID}" -H "X-Account-Meta-Book:" "${STORAGE_URL}"  
# older versions of  cURL, does not support empty headers
curl -d '' -H "X-Auth-Token:${TOKEN_ID}" -H "X-Remove-Account-Meta-Book:anyvalue" "${STORAGE_URL}"


#STORAGE CONTAINER SERVICE
#list objects in container. The system returns a maximum of 10,000 object names per request
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}/myfiles1
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}/myfiles1?format=xml
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}/myfiles1?format=json
curl -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/myfiles1?limit=10&marker=swift/conf/ntp.sh&end_marker=swift/conf/restartProxy.sh"


#Pseudo-Hierarchical Folders and Directories
curl -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/myfiles1?prefix=swift/conf/&delimiter=/"
curl -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/myfiles1?prefix=swift/bin/&delimiter=/"
curl -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/myfiles1?prefix=swift/&delimiter=/"

#Create Container
curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer"
# The custom metadata is assigned to a container via HTTP headers identified with the X-Container-Meta- prefix. Can not
#curl -X PUT -H "X-Auth-Token:${TOKEN_ID}"  -H " X-Container-Meta-Book: MobyDick" "${STORAGE_URL}/testContainer2"

# Get Container Metadata
curl --head -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer"

#Create or Update Container Metadata.They must, however, take the format X-Container-Meta-.
curl -d '' -H "X-Auth-Token:${TOKEN_ID}"  -H "X-Container-Meta-Book: MobyDick" "${STORAGE_URL}/testContainer"

# Delete Container Metadata
curl -d '' -H "X-Auth-Token:${TOKEN_ID}"  -H "X-Remove-Container-Meta-Book: anyvalue" "${STORAGE_URL}/testContainer"

#Delete Container
curl -X DELETE -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer"



#Create Static Website
swift post -r '.r:*' myfiles1


###Storage Object Services
#An object represents the data and metadata for the files stored in the system. Through the ReST interface, you can include metadata for an object by adding custom HTTP headers to the request and the data payload as the request body. Objects cannot exceed 5 GB and must have names that do not exceed 1024 bytes after URL encoding. However, you can segment a large object into 5 GB segments and upload the segments. Then, you can download the segments as a single concatenated object. You can use HTTP requests to work with the segments and manifests directly.
#You can ensure end-to-end data integrity by including an MD5 checksum of your object's data in the ETag header. You are not required to include the ETag header, but it is recommended to ensure that the storage system successfully stored your object's content.

curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer/cookie.txt1" -T cookie.txt
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}/testContainer
#get object
curl -H "X-Auth-Token:${TOKEN_ID}" ${STORAGE_URL}/testContainer/cookie.txt1
#Get object by range
curl -H "X-Auth-Token:${TOKEN_ID}" -H "Range:bytes=10-100" ${STORAGE_URL}/testContainer/cookie.txt1
#Get object using multiple range
curl -H "X-Auth-Token:${TOKEN_ID}" -H "Range:bytes=10-100,20-120" ${STORAGE_URL}/testContainer/cookie.txt1

curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" -H "X-Object-Meta-PIN:1234" "${STORAGE_URL}/testContainer/addDisk.sh" -T addDisk.sh
curl --head -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer/cookie.txt1"
curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" -H "Transfer-Encoding:chunked" -H "X-Object-Meta-PIN:1234" "${STORAGE_URL}/testContainer/OpenOffice.tar.gz" -T ~/software/Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz
##Create Large Objects
#If you use the COPY operation using a manifest object as the source, the new object is a "normal" object (not segmented). If the total size of the source segment objects exceeds 5 GB, the COPY operation fails. However, as explained later, you can make a duplicate of the manifest object. This new object can be larger than 5 GB.

#split file
split --bytes=10m tpch-dbgen.tar.gz tpch-dbgen/tpch-dbgen-part
curl -i -X PUT -H "X-Auth-Token:${TOKEN_ID}"  "${STORAGE_URL}/testContainer/tpch-dbgen/tpch-dbgen-partaa" -T tpch-dbgen/tpch-dbgen-partaa
#Etag: 6d74b166df2b7d16938a2411d6657d75 Content-Length: 10485760
curl -i -X PUT -H "X-Auth-Token:${TOKEN_ID}"  "${STORAGE_URL}/testContainer/tpch-dbgen/tpch-dbgen-partab" -T tpch-dbgen/tpch-dbgen-partab
#< Etag: e463bf72a0ceaf4546e4078513097a24 Content-Length: 10485760

curl -i -X PUT -H "X-Auth-Token:${TOKEN_ID}"  "${STORAGE_URL}/testContainer/tpch-dbgen/tpch-dbgen-partac" -T tpch-dbgen/tpch-dbgen-partac
#> Content-Length: 2695694 < Etag: d09f5411a63bdc37496a315e2de9bb87

#Dynamic Manifest

curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" -H "X-Object-Manifest:testContainer/tpch-dbgen/tpch-dbgen-part" -H "Content-Length: 0" "${STORAGE_URL}/testContainer/tpch-dbgen.tar.gz"
#mdir temp
#cd temp
swift download testContainer tpch-dbgen.tar.gz
curl -v -X PUT -H "X-Auth-Token:${TOKEN_ID}"  "${STORAGE_URL}/testContainer/tpch-dbgen/tpch-dbgen-partad" -T ../tpch-dbgen/tpch-dbgen-partaa
#Etag: 6d74b166df2b7d16938a2411d6657d75 Content-Length: 10485760



swift stat testContainer tpch-dbgen.tar.gz

       Account: AUTH_3e2a0a2df18b4f86a52e2dc6ad3cb989
     Container: testContainer
        Object: tpch-dbgen.tar.gz
  Content Type: application/x-tar
Content Length: 34152974
 Last Modified: Fri, 27 Dec 2013 02:38:45 GMT
          ETag: "f53d39a009217117400e583845d95b9d"
      Manifest: testContainer/tpch-dbgen/tpch-dbgen-part
 Accept-Ranges: bytes
   X-Timestamp: 1388108777.24155

swift delete testContainer tpch-dbgen/tpch-dbgen-partad

#static large file


cat > manifest.json << EOF
[
    {"path": "/testContainer/tpch-dbgen/tpch-dbgen-partaa","etag": "6d74b166df2b7d16938a2411d6657d75","size_bytes": 10485760},
    {"path": "/testContainer/tpch-dbgen/tpch-dbgen-partab","etag": "e463bf72a0ceaf4546e4078513097a24","size_bytes": 10485760},
    {"path": "/testContainer/tpch-dbgen/tpch-dbgen-partac","etag": "d09f5411a63bdc37496a315e2de9bb87","size_bytes": 2695694}
]
EOF
swift delete testContainer tpch-dbgen.tar.gz
curl -X PUT -i -H "X-Auth-Token:${TOKEN_ID}" -H "X-static-Large-Object: True" -T ./manifest.json "${STORAGE_URL}/testContainer/tpch-dbgen.tar.gz?multipart-manifest=put"


#Object DeleteAt
#curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" -H "X-Delete-After: 100" -H "Content-Length: 316" "${STORAGE_URL}/testContainer/cookie.txt"

curl -v -X PUT -H "X-Auth-Token:${TOKEN_ID}"  -H "X-Delete-After: 100"  "${STORAGE_URL}/testContainer/install.sh" -T install.sh
--swift list testContainer ,还是能看到文件,只是下载不了.

#create container for older version objects
vim container-server.conf
[app:container-server]
use = egg:swift#container
allow_versions = true

curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/olderContainer"
#create new container for current version objects.
curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" -H "X-Versions_Location: olderContainer" "${STORAGE_URL}/currContainer"
curl --head -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/currContainer"



curl -X PUT -i -H "X-Auth-Token:${TOKEN_ID}"  -T ./cookie.txt "${STORAGE_URL}/currContainer/cookie.txt"


curl  -i -H "X-Auth-Token:${TOKEN_ID}"   "${STORAGE_URL}/olderContainer"

curl -X DELETE -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/currContainer/cookie.txt"
curl  -i -H "X-Auth-Token:${TOKEN_ID}"   "${STORAGE_URL}/currContainer"
curl  -i -H "X-Auth-Token:${TOKEN_ID}"   "${STORAGE_URL}/olderContainer"
# Copy Object
curl -X PUT -H "X-Auth-Token:${TOKEN_ID}" -H "Content-Length: 0" -H "X-Copy-From:/currContainer/cookie.txt" "${STORAGE_URL}/testContainer/cookie.txt2"

#Delete Object
curl -X DELETE -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer/cookie.txt"

#Get Object MetaData
curl --head -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer/install.sh"

#Update Object Metadata
curl -X POST -d '' -H "X-Object-Meta-updater: houzhizhen" -H "X-Auth-Token:${TOKEN_ID}" "${STORAGE_URL}/testContainer/install.sh"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值