Português
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

Instrução: Copiar/clonar conteúdo de uma organização do ArcGIS Online ou Portal for ArcGIS para outro

Summary

O ArcGIS Online Assistant é frequentemente considerado como a única maneira de copiar o conteúdo de uma organização do ArcGIS Online ou Portal for ArcGIS para outra. No entanto, as instruções fornecidas abaixo descrevem como fazer isso usando o ArcGIS API for Python para copiar mapas da web de conteúdo, configurable apps, painéis, arquivos de forma, arquivos geodatabases e outros.

Procedure

O seguinte script Python (executado a partir de uma interface do Jupyter Notebook) usa o método clone_items no módulo arcgis para copiar camadas de feições hospedadas e o serviço subjacente de uma organização do ArcGIS Online para outra. As células de amostra usadas são destinadas ao uso no Jupyter Notebook, mas podem ser modificadas para uso em um script independente.

Nota: O usuário que está executando a cópia deve ser um administrador no GIS de destino.
  1. Importe o módulo necessário.
de arcgis.gis importar GIS
  1. Especifique a URL e a credencial da conta do ArcGIS Online de origem.
#For ArcGIS Online gis=GIS("https://arcgis.com", "Username", "Password") #For Portal for ArcGIS gis=GIS("https://<gisserver>.<domain>.com/portal", "Username", "Password")
  1. Especifique o nome de usuário da conta para exportar os itens clonados.
username_2 = input("Enter username of target organization: ") #For ArcGIS Online gis2 = GIS("https://arcgis.com", username_2) #For Portal for ArcGIS gis2 = GIS("https://<gisserver>.<domain>.com/portal", username_2)
  1. Crie uma lista de itens para clonar. Há algumas opções para fazer isso:
  • Defina o número máximo de itens a serem exportados:
num_items = 5 items = gis1.content.search(query="owner: {}".format(username), max_items=num_items, sort_field='id', sort_order='desc')
  • Obtenha o número máximo de itens como parâmetro de entrada:
num_items = int(input("Quantos itens você gostaria de clonar? ")) items = gis1.content.search(query="owner: {}".format(username), max_items=num_items, sort_field='id', sort_order='desc')
  • Obtenha um item específico usando o id do item:
itemid = '<item_ID>' #insert the item id items = gis.content.get(itemid)
  • Use a função Pesquisar com uma consulta para pesquisar itens específicos para clonar. O formato geral é o seguinte:
items = gis.content.search(query, item_type=None, sort_field='avgRating', sort_order='desc', max_items=10, outside_org=False, categories=None, category_filters=None)
  1. Imprima a lista dos itens a serem clonados.
print(str(len(items)) + " itens serão clonados. Veja a lista abaixo:") itens
  1. Crie uma lógica para clonar os itens usando a função clone_items() e para lidar com um erro se o processo de clonagem falhar.  
def deep_copy_content(input_list): for item in input_list: try: print("Cloning " + item.title) copy_list = [] copy_list.append(item) gis2.content.clone_items(copy_list, copy_data=True, search_existing_items=True) print("Successfully cloned " + item.title) except Exception as e: print(e) print("The function has completed") deep_copy_content(items)
Nota: Como uma alternativa, a função clone_items() também pode ser usado fora do bloco de código lógico se o tratamento da exceção for desnecessário. Depois da etapa 5, a função clone_items() pode ser utilizada como: gis2.content.clone_items([items])

O seguinte mostra um exemplo de um script completo:

from arcgis.gis import GIS gis=GIS("https://arcgis.com", "Username", "Password") username_2 = input("Enter username of target organization: ") gis2 = GIS("https://arcgis.com", username_2) #Get a specific item using item id: itemid = 'cc94b27a35d14f40987d96f3d2a39e67' items = gis.content.get(itemid)  print(str(len(items)) + " items will be cloned. See the list below:") items def deep_copy_content(input_list): for item in input_list: try: print("Cloning " + item.title) copy_list = [] copy_list.append(item) gis2.content.clone_items(copy_list, copy_data=True, search_existing_items=True) print("Successfully cloned " + item.title) except Exception as e: print(e) print("The function has completed") deep_copy_content(items)

Related Information

Last Published: 5/13/2021

Article ID: 000022252

Software: Portal for ArcGIS 10.8.1, 10.8, 10.7.1, 10.7, 10.6.1, 10.6