Saltar al contenido principal
Adaptive Planning
Última actualización: 2023-06-23
ai.awss3

ai.awss3

Funciones

Método
Parámetros
Devoluciones
Descripción
getFile(bucketName, key, region, awsAccessKey, AwsSecretKey)
bucketName: cadena
clave: cadena
region: cadena
awsAcceskey: String
awsSecretKey: cadena
Recupera un archivo de un bucket de AWS S3.
putFile(bucketName, key, region, awsAccessKey, AwsSecretKey)
bucketName: cadena
clave: cadena
doc:String
region: cadena
awsAcceskey: String
awsSecretKey: cadena
Coloca un archivo en un bucket de AWS S3.
listKeys(bucketName, region, awsAccessKey, awsSecretKey)
No se recomienda para depósitos con más de 5000 claves.
bucketName: cadena
region: cadena
awsAcceskey: String
awsSecretKey: cadena
Enumera las claves (archivos) de un bucket de AWS S3.
listObjects(request, region, awsAccessKey, awsSecretKey)
Parámetros de objeto de solicitud
Consulte Documentos de solicitud de Amazon S3 para obtener más información.
bucketName: cadena (obligatorio).
continuationToken: indica que la lista continúa en este depósito con un token. El nextContinuationToken obtenido de la respuesta anterior.
delimitador: carácter utilizado para agrupar claves. Consulte los documentos de Listado jerárquico de claves de Amazon S3.
encoding: el método de codificación que se utilizará en la respuesta.
fetchOwner: establézcalo como verdadero para enumerar los propietarios con cada clave. Si no se especifica, el propietario es nulo.
maxKeys: el número máximo de claves en la respuesta.
prefijo: limita la respuesta a las claves que comienzan con el prefijo especificado.
requestPlayer: cadena
startAfter: la lista comienza después de esta clave. Utilice cualquier clave del depósito. No se puede definir al mismo tiempo que continuationToken.
Parámetros de objeto de respuesta
Consulte Amazon S3 Response Docs para obtener más información.
s3Objects: lista de objetos encontrados.
keyCount: número de objetos encontrados.
isTruncated: indica si hay más claves que coinciden con la solicitud inicial. Se puede especificar en la solicitud. El valor por defecto de AWS es 1000.
nextContinuationToken: se envía cuando isTruncated es verdadero, lo que indica que se pueden enumerar más claves en el depósito. La lista puede continuar con este nextContinuationToken.
httpStatusCode:
nombre:
prefijo:
maxKeys:
delimitador:
commonPrefixes:
codificación:
continuationToken:
startAfter:
Enumera los objetos de un bucket de AWS S3. Permite el uso de parámetros en una solicitud para limitar y filtrar las claves recuperadas.
Ejemplos
// Invoke this method using 'Test connection' in Actions pane function testConnection(context) { exampleGetFile(context); exampleListKeys(context); return true; } //Example for getFile function exampleGetFile(context) { var bucketName = 'xxx'; var key = 'newfile.xml'; var awsAccessKey = 'xxx'; var awsSecretKey = 'xxx'; var region = 'xxx'; var doc = ai.xml.createDocument(); var myFile=ai.awss3.getFile(bucketName, key, region, awsAccessKey, awsSecretKey); ai.log.logVerbose("File contents are",JSON.stringify(myFile)); } //Column,Heading,Names\n,2016-05-31T00:00:00,49570.89,4110_Product_Revenue_Grp_A,Sales - Canada\n,..... //Example for listkeys function exampleListKeys(context) { var bucketName = 'xxx'; var key = 'test.csv'; var awsAccessKey = 'xxx'; var awsSecretKey = 'xxx'; var region = 'xxx'; var myFile=ai.awss3.listKeys(bucketName, region, awsAccessKey, awsSecretKey); ai.log.logVerbose("Keys are",JSON.stringify(myFile)); return true; } //Keys are ["attribute-import-demo.csv","cloadertest.csv"] //Example for putFile function exportData(context) { var bucketName = 'xxx'; var key = 'newfile.xml'; var awsAccessKey = 'xxx'; var awsSecretKey = 'xxx'; var region = 'xxx'; var doc = ai.xml.createDocument(); var requestEl = ai.xml.createElement('request'); doc.setRootElement(requestEl); ai.awss3.putFile(bucketName, key, doc.toString(), region, awsAccessKey, awsSecretKey); //This will create the "newfile.xml" with a single line "<request />" }
Ejemplo con listObjects
Este ejemplo muestra cómo solicitar objetos y paginar los resultados.
//Navigate to Designer Settings tab and add 2 "text" parameters from the Settings pane. //Enter awsAccessKey and awsSecretKey in the Name fileds and provide your keys in the Value field function processFiles(context) { // Retrieve access and secret keys from settings const awsAccessKey = context.getDataSource().getSetting('awsAccessKey').getValue(); const awsSecretKey = context.getDataSource().getSetting('awsSecretKey').getValue(); const region = 'us-west-1' // Create the request for objects, at a minimum a bucket name is required const request = { BucketName: 'xxx', Prefix: 'mydata/', // Return keys from this directory }; // Push all the keys into an array const keyNames = []; let processing = true; while (processing) { var response = ai.awss3.listObjects(request, region, awsAccessKey, awsSecretKey); for (const entry of response.s3Objects) { // Here we have a single key that can be processed as desired keyNames.push(entry.key); } if (response.isTruncated) { // If the response did not include all remaining results, use the // nextContinuationToken from the response in the next request request.ContinuationToken = response.nextContinuationToken; } else { // If the response did include all remaining results, exit the loop ai.log.logInfo('Response indicated no further keys available'); processing = false; } } ai.log.logInfo("List of Objects:"+JSON.stringify(keyNames)); //List of Objects:["attribute-import-demo (7).csv","cloadertest.csv"] }
Solicitud de parámetro de muestra
El parámetro
BucketName
es el único valor obligatorio.
Prefix
indica el directorio.
{ BucketName: 'ag-ccds-test', Prefix: 'samplenumber/', StartAfter: 'samplenumber/001_samplefile', MaxKeys: 3 }
ListObjects de muestra
Esta respuesta de listOjbects de ejemplo contiene 8 objetos.
{ "isTruncated": true, "s3Objects": [ { "eTag": "\"4c7507b8cf17a6650bcff6787ccd0915\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575352592693.txt", "lastModified": "2019-12-03T15:56:34+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353843184.txt", "lastModified": "2019-12-03T16:17:24+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353844190.txt", "lastModified": "2019-12-03T16:17:25+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353845193.txt", "lastModified": "2019-12-03T16:17:26+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353846195.txt", "lastModified": "2019-12-03T16:17:27+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353847194.txt", "lastModified": "2019-12-03T16:17:28+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353848223.txt", "lastModified": "2019-12-03T16:17:29+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } }, { "eTag": "\"b2addf641c43f17df4492524c834984c\"", "bucketName": "ag-ccds-test", "key": "archiveListing/archiveList_1575353849192.txt", "lastModified": "2019-12-03T16:17:30+10:00", "owner": null, "size": 1323, "storageClass": { "value": "STANDARD" } } ], "name": "ag-ccds-test", "prefix": "archiveListing/", "maxKeys": 8, "commonPrefixes": [], "delimiter": null, "encoding": null, "keyCount": 8, "continuationToken": null, "nextContinuationToken": "1Vut/ORdOSPdn8ZQdd8Z5nhNvlEfPkw0hkekFIDTVzk8Hn8jlttn/yIjkl67yK3RAUkPIoUHwDuiybia7Rx7YjVaRefLocnF4", "startAfter": null, "responseMetadata": { "requestId": "5ACCAA141D2F7D2B", "metadata": { "x-amz-id-2": "zlslMcRM+qj6SCKELuE2crlEzhc0eEFkpo5OC3Pzn9tMvtOYnaEkLoRQNj1m1SThPzI1lQ233Zo=" } }, "contentLength": -1, "httpStatusCode": 200 }