有没有办法以编程方式从 Netsuite 下载大文件?

问题描述 投票:0回答:1

我有一些已保存的搜索,它们存储在文件柜的文件中,我想以编程方式下载这些文件,但我遇到了 Netsuite 的 10mb 文件大小限制。我已经搜索了 suitescript 文档,但我没有想到任何解决方案。有什么办法可以做到这一点吗?

netsuite suitescript suitescript2.0
1个回答
0
投票

我们最近从 Netsuite 下载了几百万个文件。由于限制(如您所描述的)和成本,我们没有使用 SuiteScript。如果这 不是 的要求,您可以使用适用于 Netsuite 的 Python SDK(使用 SOAP API)。我们定期使用类似于以下的代码提取 >50 MB 的文件:

from netsuitesdk import NetSuiteConnection
import logging
def connect() -> NetSuiteConnection:
    token = oauth.Token(key=TOKEN_KEY, secret=TOKEN_SECRET)
    consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
    NS_ACCOUNT = NETSUITE_ACCOUNT
    NS_CONSUMER_KEY = consumer.key
    NS_CONSUMER_SECRET = consumer.secret
    NS_TOKEN_KEY = token.key
    NS_TOKEN_SECRET = token.secret
    nc = NetSuiteConnection(
        account=NS_ACCOUNT,
        consumer_key=NS_CONSUMER_KEY,
        consumer_secret=NS_CONSUMER_SECRET,
        token_key=NS_TOKEN_KEY,
        token_secret=NS_TOKEN_SECRET,
        caching_path="./netsuite_cache/",
    )
    logging.warn("Connected to NetSuite")
    return nc

def download_file(nc: NetSuiteConnection, file_id: str) -> bytes:
    logging.warn(f"Getting file content for ID {file_id}")
    file = nc.files.get(internalId=file_id)
    return file.content

要使用此代码,您需要拥有要下载的文件 ID。但是,您可以轻松地从 NetSuite 获取此列表(使用 SOAP API 或通过 UI 中的手动导出)。

注意:您需要从 NetSuite 管理员处获取

TOKEN_KEY
TOKEN_SECRET
CONSUMER_KEY
CONSUMER_SECRET
NETSUITE_ACCOUNT
的详细信息。 有关如何生成这些的更多详细信息,请参阅 oracle 文档。

© www.soinside.com 2019 - 2024. All rights reserved.