Adăugați fișiere la Găleată S3 folosind Script de Shell

0

Problema

Obiectiv: pentru a împinge fișiere în gri/ la găleată S3 folosind SendToS3.sh script de shell.

Eu urmez acest Tutorial.

SendToS3.sh este în cwd. Ea are nevoie pentru a aduce toate fișierele, care nu sunt în sub-dosare, în cwd este gri/.

Terminal:

me@PF2DCSXD:/mnt/c/Users/me/Documents/GitHub/workers-python/workers/data_simulator/data$ ./SendToS3.sh
./SendToS3.sh: line 17: logInfo: command not found
curl: Can't open '/gri/*'!
curl: try 'curl --help' or 'curl --manual' for more information
curl: (26) Failed to open/read local data from file/application
./SendToS3.sh: line 27: logInfo: command not found

SendToS3.sh:

bucket=simulation
files_location=/gri/  # !
now_time=$(date +"%H%M%S")
contentType="application/x-compressed-tar"
dateValue=`date -R`
# your key goes here..
s3Key=  # CENSORED
# your secrets goes here..
s3Secret=  # CENSORED

function pushToS3()
{
  files_path=$1
  for file in $files_path*
  do
    fname=$(basename $file)
    logInfo "Start sending $fname to S3"
    resource="/${bucket}/${now_date}/${fname}_${now_time}"
    stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
    signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
    curl -X PUT -T "${file}" \
     -H "Host: ${bucket}.s3.amazonaws.com" \
     -H "Date: ${dateValue}" \
     -H "Content-Type: ${contentType}" \
     -H "Authorization: AWS ${s3Key}:${signature}" \
      https://${bucket}.s3.amazonaws.com/${now_date}/${fname}_${now_time}
     logInfo "$fname has been sent to S3 successfully."
  done
}
pushToS3 $files_location

Te rog, lasă-mă să știu dacă există ceva ce pot adăuga la mesaj.

amazon-s3 amazon-web-services curl sh
2021-11-23 13:23:33
2
0

Sistemul nu are loginfo, deci poate comutator care comanda a echo. Pentru curl de eroare ar putea fi o permisiune fișier erori, încercați să rulați: chmod -rwx gri.

Alternativ, ai putea folosi aws cli în loc, care este mult mai ușor de a utiliza omi.

2021-11-23 14:01:43

Mă uit în AWS CLI, în schimb, poate fi un timp înainte de a mă raporta.
StressedBoi69420
0

Eroarea este de la următoarea linie. Dosarul /gri/ este gol sau utilizatorul lansează scriptul nu poate avea acces la ea.

curl: nu Pot deschide '/gri/*'!

Mai mult decât atât, se pare că serverul nu are executabil LogInfo instalat, sau nu este accesibil de la script-ul dvs. SendToS3.sh. Verificați instalarea și adăuga binar la PATH env variabilă.

./SendToS3.sh: linia 17: logInfo: comanda nu a fost găsit

Bonus: în loc de a folosi curl, puteți utiliza aws-cli care este optimizat pentru a interract cu aws componente. Vă rugăm să găsi documentația pentru s3 aici: https://docs.aws.amazon.com/cli/latest/reference/s3/

De exemplu, aveți posibilitatea să copiați un fișier de w găleată cu această comandă:

aws s3 cp <path_to_file> s3://<bucket_name>/<path>/
2021-11-23 14:23:19

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................