1
Müssen die Liste der Objekte aus S3-Bucket durch MULE ESB abrufen. Aber wenn der payload.getkey bekommen(), es führt den Fehler: derzeit keine Methode beheben: org.mule.module.s3.model.ObjectListing.getKey() [arglength = 0]]Mule ruft eine Liste von Objekten aus s3-Bucket ab
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="9090" doc:name="HTTP Listener Configuration"/>
<s3:config name="Amazon_S3__Configuration" accessKey="XXXXXXX" secretKey="XXXXXXXX" doc:name="Amazon S3: Configuration"/>
<flow name="s3bucket-downloadfilesFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/getfiles" doc:name="HTTP"/>
<s3:list-objects config-ref="Amazon_S3__Configuration" bucketName="ge-datastaging-dev" prefix="Mule/inbound/" maxKeys="5" doc:name="Amazon S3"/>
<logger level="INFO" doc:name="Logger"/>
<foreach collection="#[payload]" doc:name="For Each">
<logger level="INFO" doc:name="Logger" message=" inside foreach...... #[payload.getCommonPrefixes()] ...."/>
<logger level="INFO" doc:name="Logger" message=" ################...... #[payload.getNextMarker()] ...."/>
<logger level="INFO" doc:name="Logger" message=" ################...... #[payload.getKey()] ...."/>
</foreach>
</flow>
Check 'ge-datastaging-dev' Eimer haben Dateien im Ordner ?. Verwenden Sie die gleiche Weise wie in diesem Link erwähnt http://stackoverflow.com/questions/25956403/mule-esb-how-to-take-all-the-files-in-a-folder-inside-bucket-of-amazon -s3-get/37673489 # 37673489 im Antwortabschnitt (mit 'Objektinhalt holen' innerhalb von foreach). Es sollte funktionieren. Vor Für jeden In-Logger auf Nutzlast prüfen. – star
ge-datastaging-dev ist ein Bucket-Name und innerhalb von Bucket haben wir den Mule/Inbound/Ordner darin erstellt. Alle Dateien sind in Mule/Inbound/ –
verfügbar. Haben Sie "Get-Object Content" zum Abrufen des Schlüssels verwendet? – star