ECS: s3curl.pl" Komut Dosyasını Kullanarak Temel S3 İşlemlerini Gerçekleştirme
Summary: s3curl" komut dosyasını kullanarak ECS 3.x üzerinde temel s3 işlemleri gerçekleştirme.
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
Yapılandırma Adımları
Yapılandırmak için aşağıdaki bilgileri toplayın:
s3curl.pl:
- Araştırmakta olduğunuz kovanın nesne kullanıcısı:
- Kullanıcı arayüzünde> oturum açın Grupları yönetme>>**Ad alanı seçin**> Kovanın sahip sütununu yazın.
- Nesne kullanıcısının Paylaşılan Gizli Anahtarı:
- Kullanıcı arayüzünde> oturum açın: Kullanıcıları> yukarıdan > yönetme >**Edit** Kullanıcının Paylaşılan Sırrını yazın.
- ECS Düğümleri veri IP adresleri veya genel IP adresleri:
- ECS CLI de oturum açın ve şunu çalıştırın:
getrackinfo -n
- ECS CLI de oturum açın ve şunu çalıştırın:
İstemcide ağ ayrımı varsa, yukarıdaki komuttan veri ve repl için IP'leri görürsünüz. Düğümlerin veri IP'lerini not edin.
Örneğin:
Node ID Network Ip Address Netmask Gateway VLAN 5 repl 10.###.##.##4 255.255.252.0 - - 5 data 10.###.##.##2 255.255.252.0 -
Ağ ayrımı yoksa düğümlerin genel IP adreslerini 'ndan alın
getrackinfo:
Örneğin:
provo:/usr/share/s3curl # getrackinfo Node private Node Public RMM Ip Address Id Status Mac Ip Address Mac Ip Address Node Name =============== ====== ====== ================= ================= ================= ================= ========= 192.###.###.1 1 MA 00:1e:67:f1:85:10 10.##.##.##7 00:1e:67:bc:c5:53 10.##.##.##3 provo-red 192.###.###.2 2 SA 00:1e:67:ab:e6:d8 10.##.##.##8 00:1e:67:6a:08:8c 10.##.##.##4 sandy-red
Adımlar:
- Dizine git
/usr/share/s3curlECS düğümünde aşağıdaki dosyayı kontrol edin.
provo:/usr/share/s3curl # provo:/usr/share/s3curl # ls -lrt .s3curl -rw------- 1 root root 2095 Mar 6 16:14 .s3curl
- Dosya mevcut değilse, aşağıdaki içerikle oluşturun. ["
sample_user" kullanılır.]
@endpoints = ECS data / public ip address gotten above.
%awsSecretAccessKeys = (
sample_user => {
id => '<Object User>',
key => '<Shared Secret>',
},
@endpoints = ('<node1_ip>','<node2_ip>','<node3_ip>','<node4_ip>',)
);
- Bu dosyaya aşağıdaki gibi birden fazla kullanıcı ekleyebilirsiniz.
%awsSecretAccessKeys = (
<sample_user> => {
id => '<object user>',
key => '<Shared Secret>',
},
<sample_user2> => {
id => '<object user>',
key => '<Shared Secret>',
},
@endpoints = ('<node1_ip>','<node2_ip>','<node3_ip>','<node4_ip>',)
);
- Dosyaların izinlerini değiştirme.
# sudo chmod 755 s3curl.pl # sudo chmod 600 .s3curl
Kullanıcı arayüzü uygulamalarını başlatmak için s3curl.pl Yapılandırmadan sonra
- Kullanıcı kimlik doğrulamasını test etme ve söz konusu kullanıcının sahip olduğu grupları listeleme. )
bucket_1" grubun adıdır.
--id= daha önce ayarlanan kimlik.s3curldosya "sample_user)9020= S3'e bağlanmak için kullanılan TCP bağlantı noktası
# provo:/usr/share/s3curl # perl s3curl.pl --id <user ID> -- http://<hostname or IP>:9020 | xmllint --format -
provo:/usr/share/s3curl # perl s3curl.pl --id sample_user -- http://10.##.##.##7:9020 | xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 421 100 421 0 0 21803 0 --:--:-- --:--:-- --:--:-- 22157
<?xml version="1.0" encloding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01">
<Owner>
<ID>sample_user</ID>
<DisplayName>sample_user</DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>bucket_1</Name>
<CreationDate>2017-02-21T08:32:05.651Z</CreationDate>
<ServerSideEncryptionEnabled>false</ServerSideEncryptionEnabled>
</Bucket>
</Buckets>
<IsTruncated>false</IsTruncated>
</ListAllMyBucketsResult>
- Belirli bir kovanın içeriğini listeleme.
- S3'teki bir anahtar, bir dosyayı ifade eder.
Not: S3 düz bir dosya yapısına sahiptir, dizinler mevcut değildir.
s3curl.plYalnızca bir dizindeki ilk 1000 dosyayı gösterir.
# perl s3curl.pl --id <user id> -- http://<hostname or IP>:9020/<bucket> | xmllint --format - | grep Key
provo:/usr/share/s3curl # perl s3curl.pl --id sample_user -- http://10.##.##.##7:9020/bucket_1 | xmllint --format - | grep Key
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1128 100 1128 0 0 29386 0 --:--:-- --:--:-- --:--:-- 29684
<MaxKeys>1000</MaxKeys>
<Key>2017 - emea schedule obj storage.xlsx</Key>
<Key>_$folder$</Key>
<Key>dir1/dir2/dir3/test_new_name.txt</Key>
- Bir kovadaki belirli bir anahtarı veya dosyayı arama.
- Dosya adının başlangıcı bilindikten sonra belirli dosyaları aramak için önek arama yöntemini kullanın.
- Yöntemi grup adından sonra "
?prefix=<search_string>)
# perl s3curl.pl --id <user id> -- http://<hostname or IP>:9020/<bucket>?prefix=dir1/dir2/ | xmllint --format - | grep Key
provo:/usr/share/s3curl # perl s3curl.pl --id smaple_user -- http://10.##.##.##7:9020/bucket_1?prefix=dir1/dir2/ | xmllint --format - | grep Key
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 599 100 599 0 0 20309 0 --:--:-- --:--:-- --:--:-- 19966
<MaxKeys>1000</MaxKeys>
<Key>dir1/dir2/dir3/test_new_name.txt</Key>
- Bir kovadaki belirli bir anahtarı veya dosyayı okuma.
Not: Bir anahtar veya kovanın adında boşluk varsa "
%20" URL'de bunu sorgularken.
provo:/usr/share/s3curl # cat test1.txt Goodbye World provo:/usr/share/s3curl # perl s3curl.pl --id smaple_user -- http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt Goodbye World
- Kovaya belirli bir anahtar veya dosya yazma.
provo:/usr/share/s3curl # cat test1.txt Goodbye World provo:/usr/share/s3curl # perl s3curl.pl --id smaple_user --put=test1.txt http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt
- Kovadaki belirli bir anahtarın veya dosyanın meta verilerini okuyun.
HTTP/1.1 200 OK--> İstek için özel HTTP yanıtıx-amz-request-id-->request_idECS günlüklerinde izlenebilirETag--> MD5SUM dosyasınınContent-Length--> Nesnenin boyutu veya bayt sayısı
# perl s3curl.pl --id <user ID> --head http://<hostname or IP>:9020/<bucket>/<path1>/<path2>/<object>
provo:/usr/share/s3curl # perl s3curl.pl --id sample_user --head http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt HTTP/1.1 200 OK Date: Wed, 08 Mar 2017 16:25:52 GMT Server: ViPR/1.0 x-amz-request-id: 0a3c23ed:15aa813368d:10e1:1 x-amz-id-2: 83769c2fcf5f8907b60b588a251bcc492d86d5829dfc2c8bee2504f0c527f256 ETag: "54aea9f06281a5df11d06f105c6fb039" Last-Modified: Wed, 08 Mar 2017 16:08:02 GMT x-emc-mtime: 1488989282859 Content-Encoding: identity Content-Type: application/octet-stream Content-Length: 14
- Kullanıcı için yeni bir grup oluşturmak üzere:
# perl s3curl.pl --id <user ID> --createBucket -- http://<hostname or IP>:9020/<new bucket name>
provo:/usr/share/s3curl # perl s3curl.pl --id sample_user --createBucket -- http://10.##.##.##7:9020/new_bucket_name New Bucket can be seen below. # provo:/usr/share/s3curl # perl s3curl.pl --id <user> -- http:/<hostname or IP>:9020 | xmllint --format - | grep -A1 '<Bucket>'
provo:/usr/share/s3curl # perl s3curl.pl --id sample_user -- http://10.##.##.##7:9020 | xmllint --format - | grep -A1 '<Bucket>'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 583 100 583 0 0 31712 0 --:--:-- --:--:-- --:--:-- 32388
<Bucket>
<Name>new_bucket_name</Name>
--
<Bucket>
<Name>some_old_bucket</Name>
- Bir kovadaki belirli bir anahtarı veya dosyayı ECS düğümüne indirme.
# perl s3curl.pl --id <user ID> -- http://<hostname or IP>:9020/<bucket>/<path1>/<object> -o download2.txt
provo:/usr/share/s3curl # perl s3curl.pl --id sample_user -- http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt -o download2.txt
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14 100 14 0 0 1360 0 --:--:-- --:--:-- --:--:-- 1400
provo:/usr/share/s3curl #
provo:/usr/share/s3curl # cat download2.txt
Goodbye World
- Kullanıcıya ait kovadaki belirli bir anahtarı veya dosyayı silme.
provo:/usr/share/s3curl # perl s3curl.pl --id <user ID> --delete -- http://<hostname or IP>:9020/<bucket>/<path1>/<path2>/<object>
Not: Nesne adı arasında bir boşluk varsa, tüm yolu tırnak içine almalı ve "
Örnek nesne adı:
+ " uzayda.
Örnek nesne adı:
test_new_name test - test.txt
perl s3curl.pl --id sample_user --delete -- "http://10.##.##.##7:9020/bucket/dir1/dir2/test_new_name+test+-+test.txt"
- Bir kovanın silinmesi kullanıcıya aittir.
provo:/usr/share/s3curl # perl s3curl.pl --id smaple_user --delete -- http://10.##.##.##7:9020/new_bucket_name
Kullanıcıya ait kovalar listelendikten sonra kova mevcut değil:
provo:/usr/share/s3curl # perl s3curl.pl --id smaple_user -- http://10.##.##.##7:9020 | xmllint --format - | grep -A1 '<Bucket>'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 421 100 421 0 0 19928 0 --:--:-- --:--:-- --:--:-- 21050
<Bucket>
<Name>bucket_1</Name>
- byte: range" komutunu kullanarak bir dosyayı kısmen okuma Başlık (aşağıdaki ilk yedi karakter okunur)
- Aralık: bayt değerleri şunları içerir:
İlk 500 bayt: "bytes 0-499/1234" İkinci 500 bytes: "bytes 500-999/1234" (bayt 500-999/1234) İlk 500 bayt hariç tümü: bytes 500-1233/1234" Son 500 bayt: "bayt 734-1233/1234"
provo:/usr/share/s3curl # cat test1.txt Goodbye World provo:/usr/share/s3curl # perl s3curl.pl --id sample_user -- http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt -H "Range: bytes=0-6" Goodbye Using the "--debug" option for more detailed responses.
Not: Hata ayıklama seçeneği, aşağıdakilerden herhangi biri için kullanılabilir:
s3curl.pl kullanın.
# perl s3curl.pl --debug --id <user ID> -- http://<hostname>:9020/<bucket>/<object> -H "Range: bytes=0-6"
provo:/usr/share/s3curl # perl s3curl.pl --debug --id sample_user -- http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt -H "Range: bytes=0-6" s3curl: Found the url: host=10.##.##.237; port=9020; uri=/thomas/dir1/dir2/dir3/test_new_name.txt; query=; s3curl: ordinary endpoint signing case s3curl: StringToSign='GET\n\n\nWed, 08 Mar 2017 17:10:59 +0000\n/bucket_1/dir1/dir2/dir3/test_new_name.txt' s3curl: exec curl -v -H 'Date: Wed, 08 Mar 2017 17:10:59 +0000' -H 'Authorization: AWS hegars5:+YrMhohkQ2HqRNkYURJMbddIwrA=' -L -H 'content-type: ' http://10.##.##.##7:9020/bucket_1/dir1/dir2/dir3/test_new_name.txt -H 'Range: bytes=0-6' * Hostname was NOT found in DNS cache * Trying 10.##.##.##7... * Connected to 10.##.##.##7 (10.##.##.##7) port 9020 (#0) > GET /bucket_1/dir1/dir2/dir3/test_new_name.txt HTTP/1.1 > User-Agent: curl/7.37.0 > Host: 10.##.##.##7:9020 > Accept: */* > Date: Wed, 08 Mar 2017 17:10:59 +0000 > Authorization: AWS hegars5:+YrMhohkQ2HqRNkYURJMbddIwrA= > Range: bytes=0-6 > < HTTP/1.1 206 Partial Content < Date: Wed, 08 Mar 2017 17:10:59 GMT < Content-Range: bytes 0-6/14 < Accept-Ranges: bytes * Server ViPR/1.0 is not blacklisted < Server: ViPR/1.0 < x-amz-request-id: 0a3c23ed:15aa813368d:10fc:1 < x-amz-id-2: 83769c2fcf5f8907b60b588a251bcc492d86d5829dfc2c8bee2504f0c527f256 < ETag: "54aea9f06281a5df11d06f105c6fb039" < Last-Modified: Wed, 08 Mar 2017 17:02:13 GMT < x-emc-mtime: 1488992533141 < Content-Encoding: identity < Content-Type: application/octet-stream < Content-Length: 7 < * Connection #0 to host 10.##.##.##7 left intact Goodbye
- Belirli bir kovaya bir grup dosya veya anahtar yükleme.
- Örnek bir dosya oluşturun.
# vi /usr/share/s3curl/test # cat /usr/share/s3curl/test
Bu dosya ECS ye 1000 kez yüklenmiştir.
- Aşağıdaki komut dosyasını oluşturun.
# vi /usr/share/s3curl/script.sh
#!/bin/bash
# script.sh
for i in {1..1000}
do
./s3curl.pl --id=sample_user --put="test" -- "http://10.##.##.##7:9020/bucket_1/File$(printf "%04d" "$i").txt"
echo "File$(printf "%04d" "$i").txt"
done
- Komut dosyasının izinlerini değiştirin.
# cd /usr/share/s3curl # sudo chmod +755
- Komut dosyasını çalıştırın.
# sh script.s
- Boşluk veya özel karakter içeren bir dosya yazma
- " adlı boşluk karakterine sahip bir dosya yazma
test file.txt" (ASCII değeri %20 gerektirir)
provo:/usr/share/s3curl # perl s3curl.pl --id upload_test --put="test file.txt" -- http://10.##.##.##:9020/bucket_name/test%20file.txt
- " adlı özel bir karakter ayracı olan bir dosya yazma
testfile (1).txt" (eğik çizgi gerektirir)\" özel karakteri yoksaymak için)
provo:/usr/share/s3curl # perl s3curl.pl --id upload_test --put="testfile (1).txt" -- http://10.##.##.##:9020/bucket_name/testfile%20\(1\).txt
Affected Products
Elastic Cloud StorageProducts
Elastic Cloud StorageArticle Properties
Article Number: 000014704
Article Type: How To
Last Modified: 20 Oct 2025
Version: 5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.