Wie zum hochladen aller Dateien eines bestimmten Typs zu S3-Bucket?

Wenn ich dies tun:

foreach ($f in (Get-ChildItem -filter "*.flv")){
    Write-S3Object -BucketName bucket.example -File $f.fullName -Key $f.name -CannedACLName PublicRead
}

Bekomme ich diesen Fehler:

Write-S3Object :
At line:1 char:51
+  foreach ($f in (Get-ChildItem -filter "*.flv")){ Write-S3Object -BucketName xx. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...eS3ObjectCmdlet:WriteS3ObjectCmdlet) [Write-S3Objec
   t], InvalidOperationException
    + FullyQualifiedErrorId : Amazon.S3.AmazonS3Exception,Amazon.PowerShell.Cmdlets.S3.WriteS3ObjectCmdlet

Was mache ich falsch? Gibt es irgendetwas, was ich tun kann, um zu sehen, mehr von dem Fehler, oder ist das nur ein syntax-Problem?

Wie kann ich das sonst hochladen eines bestimmten Dateityps in einen Eimer mit powershell?

EDIT:

Ich absichtlich so eingestellt Set-DefaultAWSRegion zu einer region, der Eimer war nicht in, und bekam

Write-S3Object : The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. 

als eine Fehlermeldung, wie erwartet, so wie es aussieht kann es eine Verbindung zu dem Eimer und es weiß, dass es nicht in einer bestimmten region.

Auch, wenn ich geben Sie die s3:// Präfix vor dem bucket-Namen ein, bekomme ich eine Meldung, dass der Eimer nicht gefunden werden konnte, so dass es aussieht wie das, was ich bin, betreten nun die richtige ist.

Kann ich tun, um-S3Bucket und sehen, all die Eimer auf mein Konto, damit ich weiß, dass es richtig konfiguriert.

EDIT2:

Wenn ich das Tue:

> $f = Get-ChildItem -filter "*.flv"
> Write-S3Object

cmdlet Write-S3Object at command pipeline position 1
Supply values for the following parameters:
BucketName: bucket.name
Key: $f[0].name
File: $f[0].fullName
Write-S3Object : The file indicated by the FilePath property does not exist!
At line:1 char:1
+ Write-S3Object
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...eS3ObjectCmdlet:WriteS3ObjectCmdlet) [Write-S3Objec
   t], InvalidOperationException
    + FullyQualifiedErrorId : System.ArgumentException,Amazon.PowerShell.Cmdlets.S3.WriteS3ObjectCmdlet

Wenn ich $f[0].fullName separat, bekomme ich den vollständigen Pfad zu dem Objekt.
Das hat aber Leerzeichen. Könnte dies ein problem sein?

  • Sieht alles gut aus außer vielleicht die -BucketName parameter. Ist das etwas, das Sie einrichten müssen, um in S3?
  • bucket.name ist ein Beispiel. Es ist eigentlich die tatsächliche Eimer Namen, abzüglich der s3:// Präfix.
  • Ein weiteres Problem mit dieser Aussage (ist mir passiert), ist die CannedACLName option. In den docs wird es als "-CannedACLName PublicRead", aber diese Ergebnisse in die gleichen Fehler wie oben. Es Lesen muss "-CannedACLName public-read".
Schreibe einen Kommentar